If I had to choose the killer feature of Event Sourcing and Event-Driven design, I’d select projections.
They seem to be a simple concept.
We’re taking a set of events representing various facts (about the same object, multiple), correlating them and building interpretation.
Most of the time, we store the result as a materialised read model.
Yet, if you reach the 2nd day of working with them, then you may stumble upon the challenges like:
- handling idempotency,
- eventual consistency,
- testing,
- correlating data.
During the Webinar, I showed how to deal with those challenges and get the best out of projections.
I used Node.js, TypeScript, MongoDB and EventStoreDB to show real-world examples, but the knowledge will be focused on the patterns, not the tooling.
I encourage you to read Guide to Projections and Read Models in Event-Driven Architecture before watching, as it’ll help you to effectively go through the presented concepts.
Check also:
- Source codes,
- How to test event-driven projections.
Read also more in:
- Never Lose Data Again - Event Sourcing to the Rescue!
- Events should be as small as possible, right?
- Outbox, Inbox patterns and delivery guarantees explained
- Integrating Marten with other systems
- Persistent vs catch-up, EventStoreDB subscriptions in action
- How to create projections of events for nested object structures?
- How to build event-driven projections with Entity Framework
- How to scale projections in the event-driven systems?
- Let’s talk about positions in event stores
- Dealing with Eventual Consistency and Idempotency in MongoDB projections
- A simple trick for idempotency handling in the Elastic Search read model
- Long-polling, how to make our async API synchronous
- Anti-patterns in event modelling - State Obsession
Webinars:
#2 - Keep your streams short! Or how to model Event-Sourced systems efficiently
#6 - Alexey Zimarev - You don't need an Event Sourcing framework. Or do you?
#7 - Design and test Event-Driven projections and read models
#9 - Radek Maziarka - Modularization with Event Storming Process Level
#11 - Maciej "MJ" Jędrzejewski - Evolutionary Architecture: The What. The Why. The How.
#12 - Jeremy D. Miller: Simplify your architecture with Wolverine
#14 - Mateusz Jendza: Why Verified Credentials is the Future of Digital Identity!
#15 - Mário Bittencourt: Leveraging BPMN for Seamless Team Collaboration in Software Development
Papers We Love #1 - Sagas (Hector Garcia-Molina, Kenneth Salem)
Share this post