Mathias Verraes Profile picture
May 10, 2019 24 tweets 7 min read Read on X
1/ I've started publishing some Patterns for Decoupling in Distributed Systems on my blog. It's all very rough around the edges for now, I hope to improve them based on feedback.
2/ Summary Event: Instead of emitting a stream of Domain Events, emit a single Summary. verraes.net/2019/05/patter…
3/ Domain Queries: Replace Free Queries with Domain Queries to decouple from knowledge of the server's internals.
verraes.net/2019/05/patter…
4/ Completeness Guarantee: Design the set of Domain Events from a producer so that they can be used to rebuild the producer's state.verraes.net/2019/05/patter…
5/ I'll publish more patterns as I write them. It's also part of my DDD for Messaging Architectures workshop next month in Amsterdam. training.dddeurope.com/ddd-messaging-…
6/ And there we go: Passage of Time Event
Replace cron jobs and scheduled commands, with an agnostic event to indicate the passage of time. verraes.net/2019/05/patter…
7/ Fat Event: Add redundant information to a Domain Event to reduce complexity in the consumer. verraes.net/2019/05/patter…
8/ Explicit Public Events
Mark a small subset of events as public, keep the rest private by default. verraes.net/2019/05/patter…
9/ Segregated Event Layers: Explicitly segregate a Bounded Context's events in visibility layers, with their own language. verraes.net/2019/05/patter…
10/ Eventsourcing Patterns: Forgettable Payloads. Store the sensitive payload of an event in a separate store to control access and removal. verraes.net/2019/05/events…
11/ Eventsourcing Patterns: Throw Away the Key. Encrypt sensistive information in an event and delete the key. verraes.net/2019/05/events…
12/ A placeholder post so I have a single url to point people to my articles on #distsys decoupling patterns: verraes.net/2019/05/ddd-ms…
13/ I renamed "Throw Away the Key" to "Crypto-Shredding", as that terms seems to be more common. Also added a bit more discussion. verraes.net/2019/05/events…
14/ Ephemeral Events: An event's lifetime lasts until the next event. verraes.net/2019/05/messag…
15/ Change Detection Events: Listen to a stream of events and produce a new event when a value changes. verraes.net/2019/05/messag…
16/ Throttling: Only keep one event per time unit from a high frequency stream. verraes.net/2019/05/messag…
17/ You: Hey Mathias, if only we could spend 4 days in Amsterdam with a bunch of smart people to learn about many more patterns, DDD, temporal modelling, CQRS/ES, architecture,...
Me: I'm just going to drop this link here training.dddeurope.com/ddd-messaging-…
18/ Eventsourcing Patterns: Decision Tracking. Store the outcome of a decision to guard against rule changes.
verraes.net/2019/05/events…
19/ Eventsourcing Patterns: Migration Events in a Ghost Context.
Explicitly conform to the legacy component's model in an eventsourcing migration. verraes.net/2019/06/events…
20/ Natural Language Message Names. Embed more meaning in messages by using verbs. verraes.net/2019/06/messag…
21/ @Harrisonbro wrote a comment on the Crypto-Shredding pattern about the legality of using it for delete requests under GDPR verraes.net/2019/05/events…
22/ Added a comment about implementation of Passage of Time Events verraes.net/2019/05/patter…
23/ New blog post: Patterns Are Not Defined by Their Implementation verraes.net/2019/07/patter…
24/ New blog post: "Eventsourcing: State from Events or Events as State?" where I'm comparing two common interpretations of eventsourcing; and proposing a definition. verraes.net/2019/08/events…

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Mathias Verraes

Mathias Verraes Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @mathiasverraes

Jan 4, 2023
AI definitely picked the most boring and unimaginative side here.
For every like, I, a real human, will generate a less boring take (until I'm tired of it).
1. Coding standards are a poor substitute for code quality.
Read 20 tweets
Jun 23, 2022
The interactive keynote by @al94781 and co at DDD Europe @ddd_eu
1. Questions on the screen Image
2. The audience debates and submits ideas in the app Image
3. The speakers on stage process the data in realtime Image
Read 14 tweets
Jun 9, 2022
The Inverse Conway Manoeuvre tells us to change our team and organisational structure to achieve the system design we want. More and more organisations reorganise based on this idea, and yet they don’t end up with the system they’d like. What are we missing? 🧵
(Before I start: threaded apps republish people's content without their consent. Instead, you can read the whole thread here: verraes.net/2022/05/conway… ) 2/
There’s evidence of the Manoeuvre being applied. GitHub for example is a distributed company that built a tool for distributed collaboration using GitHub to build it. 3/
Read 48 tweets
Apr 2, 2022
By age 2, my kid didn't speak, cried a lot, couldn't fall asleep without being held for an hour, eating was problem, in fact everything was a problem. Doctors said he'd never speak and would need special care forever. 1/
It was a "child without a manual". We put in the work to write one. At home, in kindergarten, with therapists. We tried lots of experiments. Eg I invented a ball throwing game to teach him the words yes and no that we played for weeks until it clicked. 2/
Imagine being born with a perfectly capable brain, but the way you perceive the outside world is entirely different. Not wrong, just different, and the world doesn't accommodate for how you perceive it. 3/
Read 8 tweets
Mar 1, 2022
Let's talk about metaphors can help us when modelling and designing software systems, especially when the domain is tricky or highly technical. 🧵 1/
(No need to use a threader app, you can read the blog post @rebeccawb and I wrote here: verraes.net/2021/12/models… )
2/
I consulted for a client that acted as a broker for paying copyright holders for the use of their content. To do this, they figured out who the copyright holders of a work were. 3/
Read 107 tweets
Feb 3, 2022
Bloggers: "I'll demonstrate DDD by building a Todo app"

Actual DDD: "We looked at how people are using Todo lists, and we figured that our model was wrong. Besides TODO and DONE, we needed to afford for POSTPONE, WON'T DO ANYWAY, and TOO LATE. A quick experiment showed that..."
Btw here's a glorious piece of writing on DDD done well weronikalabaj.com/to-ddd-or-not-…
For the record, please don't read that tweet as gatekeeping. By all means, write todo apps as a learning tool. Learn how to use patterns. But then go further. Think about your model. Can you find things that are hidden in if statements? Those might be indicators that...
Read 13 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(