Inside event-driven architectures By David Boyne
Inside event-driven architectures By David Boyne
When build event-driven architectures, you find yourself using many different patterns, not just one. When you dive into EDA applications you see a mixture of point-to-point messaging, pub/sub, choreography, orchestration, maybe some event sourcing and much more…
I believe using these patterns together help build a resilient, available and scalable event-driven architecture.
Process Manager
- The orchestrator that manages a workflow or process
- We have to perform business logic, this encapsulates that
- Often events are triggered from process manager to other consumers
- Example of this is AWS Step Functions
Event Sourcing
- Store events and use this information to calculate state
- Downstream projections can use this to calculate their own view of world
- Change data capture popular to listen to changes
- Audit is great here, as you can see everything that is happening.
- Example is storing events into NoSQL DB like Amazon DynamoDB
Event Streaming
- Often used to process information in real time
- Examples seen with user interactions on some form of interface (e.g. clicks)
- Messages are put onto the stream, consumers pick where they want to listen
- Offsets are used by consumers to read messages from the stream.
- Example of this is Amazon Kinesis
Point-to-point messaging
- Send messages to a channel for downstream consumers to process
- Multiple consumers can pick up messages from queue for concurrent processing
- Highly scalable pattern
- Example of this is Amazon SQS
Change data capture
- React to changes when they are made against your data
- Listen for new, delete or updates
- Attach consumers to changes to process information
- Example of a DB that supports this is Amazon DynamoDB
#### Pub/Sub
- Fire notifications out to downstream consumers
- Fan out events
- Consumers get own copy of event
- Create for decoupling applications and scaling teams
- Example of this is Amazon EventBridge
Extra resources
- Point-to-point messaging - What is point-to-point messaging? When should you use it? Visual I created to help you
- Choreography vs orchestration - What’s the differnce? Using process managers to orchestrate workflows or using events to communicate between services, maybe a world of both? More than likekly…
- Pub/Sub - What is Pub/Sub? When do events get pushed to consumers? Why use this pattern? Visual here to help
- Event-driven architecture with domain-driven design - How does domain-driven design help us build event-driven architectures? Take a look to understand why.
Explore other visuals
Want to work together?
If you're interested in collaborating, I offer consulting, training, and workshops. I can support you throughout your event-driven architecture journey, from design to implementation. Feel free to reach out to discuss how we can work together, or explore my services on EventCatalog.
Download EDA Visuals
Join over 13,000 others learning EDA and download all the EDA visuals directly to your computer. This document updates everytime a new visual is added so make sure you come back to get the latest.