Event Design & Messaging Patterns
- Events vs commands vs queries: the messaging vocabulary that matters
- Event granularity: domain events vs integration events — the right level of abstraction
- Event schema design: versioning, backward compatibility, schema registry
- Choreography vs orchestration: when each creates more problems than it solves
- Event sourcing basics: events as the source of truth (see also CQRS & Event Sourcing)
- Message brokers for EDA: Kafka vs RabbitMQ vs EventBridge — choosing based on requirements
- Reliable event publishing: transactional outbox, at-least-once delivery
- Consumer patterns: competing consumers, fan-out, event filtering
- Idempotency: designing consumers that handle duplicate events safely
- Dead letter queues and poison message handling
Advanced Patterns & Operations
- Event-driven sagas: managing long-running business processes across services
- Process managers: tracking saga state, compensating transactions
- Event storming: discovering event-driven domain models collaboratively
- Event catalog and documentation: keeping contracts visible across teams
- Schema evolution: adding, removing, renaming fields without breaking consumers
- Distributed tracing in EDA: correlating events across service boundaries
- Event replay: rebuilding state from an event log
- Testing event-driven systems: verifying producers and consumers in isolation
- Monitoring event pipelines: lag, throughput, error rates
- Common anti-patterns: event spaghetti, tight coupling through event schemas, missing idempotency
Architects and developers who can design event-driven systems that are genuinely decoupled — with intentional event contracts, reliable delivery, and operational visibility.
- Design domain and integration events with proper schema versioning and backward compatibility
- Choose between choreography and orchestration based on complexity and visibility requirements
- Implement reliable event publishing with the transactional outbox pattern
- Monitor and debug event-driven pipelines with distributed tracing and consumer lag metrics
Book the Event-Driven Architecture training
Works well standalone or combined with Apache Kafka and Domain-Driven Design for a complete event-driven system design track.
Get in touch