Mathias Verraes Profile picture
Student of Systems • Consultant @Aardling_eu • Curator @ddd_eu • https://t.co/yf0uLWpBfy

May 10, 2019, 24 tweets

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…

Share this Scrolly Tale with your friends.

A Scrolly Tale is a new way to read Twitter threads with a more visually immersive experience.
Discover more beautiful Scrolly Tales like this.

Keep scrolling