Event-Driven Architecture Kit
Event sourcing, CQRS, and pub/sub patterns with Kafka, SQS/SNS, Event Grid implementations and schemas.
📄 Product Preview
Try the interactive reader and demo tools below, or get the full product with all content unlocked.
📖 Interactive Reader (Free Preview) ⚙ Try Demo Tools 📦 Download Free Sample📁 File Structure 24 files
📖 Documentation Preview README excerpt
Event-Driven Architecture Toolkit
Production-ready infrastructure templates for building event-driven systems on AWS: SQS/SNS fan-out, EventBridge routing, Kinesis streaming, dead letter queue processing, and schema validation -- all codified in Terraform and CloudFormation.
Stop building point-to-point integrations that become spaghetti. This toolkit gives you battle-tested patterns for decoupled, scalable event-driven architectures. Every pattern is implemented as deployable IaC with monitoring, DLQ handling, and schema enforcement built in.
Built for backend engineers and architects designing microservice communication, real-time data pipelines, and async processing workflows.
What's Included
| Category | Files | Description |
|---|---|---|
| Terraform | sqs_sns_topology.tf, eventbridge_rules.tf, kinesis_streams.tf, variables.tf | IaC for SQS/SNS fan-out, EventBridge routing, and Kinesis streaming |
| CloudFormation | event-bus-stack.yaml, sns-fanout-stack.yaml | EventBridge custom bus and SNS fan-out pattern stacks |
| Scripts | event_schema_validator.py, event_flow_visualizer.py, dlq_processor.py | Schema validation, flow visualization, and DLQ replay tools |
| Docs | architecture.md, event_patterns.md, troubleshooting_guide.md | Architecture diagrams, pattern catalog, and debugging guide |
| Examples | event_schemas/*.json, event_catalog.yaml | Event schemas for order, payment, and inventory domains |
Architecture Patterns Implemented
Pattern 1: Fan-Out (SNS → SQS) Pattern 2: Event Bus (EventBridge)
┌─────────┐ ┌─────────────┐
│ Producer │──→ SNS Topic │ Producer │──→ EventBridge Bus
└─────────┘ │ └─────────────┘ │
├──→ SQS Queue A (Service A) ├──→ Rule 1 → Lambda
├──→ SQS Queue B (Service B) ├──→ Rule 2 → SQS
└──→ SQS Queue C (Analytics) └──→ Rule 3 → Step Functions
Pattern 3: Streaming (Kinesis) Pattern 4: DLQ + Replay
┌─────────┐ ┌─────┐ ┌─────┐ ┌─────┐
│ Producer │──→ Kinesis Stream │ SQS │──✗─│ DLQ │──→ │Replay│
└─────────┘ │ └─────┘ └─────┘ └─────┘
├──→ Lambda Consumer │
├──→ Firehose → S3 ▼
└──→ Analytics Back to SQS
Prerequisites
- AWS Account with permissions for SQS, SNS, EventBridge, Kinesis, Lambda, IAM
- Terraform >= 1.5.0
- Python >= 3.10 (stdlib only -- no pip packages needed)
- AWS CLI v2 configured with appropriate credentials
Quick Start
1. Deploy SQS/SNS Fan-Out Topology (Terraform)
cd terraform/
terraform init
terraform plan -var="environment=production" \
-var="project_name=my-platform" \
-var="alert_email=team@example.com"
terraform apply
... continues with setup instructions, usage examples, and more.