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.

Download EDA Visuals

Join over 8,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.