Pattern · Async communication

Event-Driven Architecture

Services communicate by emitting and reacting to events. Decoupled, resilient, and naturally scalable.

EVENT-DRIVEN ARCHITECTURE Producers APIs · IoT · DB Event Bus EventBridge · SNS SQS Queue Buffered delivery Kinesis Streaming Lambda Process Flink / KDA Analyse S3 · Redshift · DynamoDB Persist Fan-out · Retry · DLQ · Schema registry MSK (Kafka) Alt streaming

Overview

In event-driven architecture, services don't call each other directly — they produce events and consume events. Producers don't know who's listening. Consumers don't know who produced. This decoupling makes systems resilient and independently scalable.

Core Patterns

Pub/Sub

Producer publishes to a topic. All subscribers receive a copy. Fan-out at scale.

  • SNS → multiple SQS queues
  • EventBridge → multiple targets

Event Streaming

Ordered, replayable event log. Consumers read at their own pace. Data retained for days/weeks.

  • Kinesis Data Streams
  • MSK (Kafka)

Queue-Based

Point-to-point delivery with buffering. Decouples producers from consumers temporally.

  • SQS Standard (at-least-once)
  • SQS FIFO (exactly-once, ordered)

Event Sourcing

Store state as a log of events, not current state. Replay to reconstruct any point in time.

  • DynamoDB Streams
  • Kinesis + S3 archive

Resilience Patterns

References

EventBridge Integration Patterns

Real-world EventBridge patterns with rules, targets, and error handling

GitHub

Terraform SQS Module

SQS queue setup with DLQ, encryption, and access policies

GitHub

Event-Driven Architectures on AWS

AWS whitepaper covering patterns, anti-patterns, and service selection

AWS Whitepaper