Event-Driven Architecture: Patterns for Enterprise System Integration
Event-driven architecture (EDA) has moved from an advanced pattern to an expected baseline in enterprise integration design. The reasons are compelling: EDA enables temporal decoupling (systems do not need to be simultaneously available), spatial decoupling (systems do not need to know about each other), and reliable delivery semantics that synchronous API calls cannot provide.
Core Patterns
Three patterns dominate enterprise EDA implementations: Event Notification (a system publishes an event signalling that something happened, without prescribing what consumers should do), Event-Carried State Transfer (events carry enough data for consumers to update their own state without querying the source), and Event Sourcing (events are the source of record, with current state derived by replaying them).
Choosing the Right Message Broker
Apache Kafka is the correct choice for high-throughput, durable event streams requiring long-term event retention and consumer group rewind capabilities. RabbitMQ is appropriate for work queue patterns and transient messages. AWS EventBridge suits cloud-native event routing. The choice must be governed by throughput requirements, retention needs, and consumer patterns — not familiarity.