Inside event-driven architectures By David Boyne

Inside event-driven architectures By David Boyne

Inside event-driven architectures

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.

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 10,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.

Download now →
Diagrams and thoughts by @boyney123 to help you learn.