What is Event-Driven Architecture
Event-driven architecture (EDA) is a design pattern where system components communicate by producing and consuming events — notifications that something happened. Instead of calling other services directly, a service emits an event, and any interested service reacts to it.
How it works
A service performs an action (e.g., "order placed") and publishes an event to a message broker. Other services that have subscribed to that event type receive it and process it independently. The producer does not know who the consumers are.
Events are typically immutable facts about the past: OrderPlaced, UserRegistered, PaymentFailed. They are distinct from commands (requests to do something) and queries (requests for information).
Why it matters
EDA decouples services in time (producer doesn't wait), availability (consumer can be down temporarily), and knowledge (producer doesn't know about consumers). This makes systems more resilient and easier to extend — adding a new consumer requires no changes to the producer.
The tradeoff is complexity. Debugging event flows across multiple services is harder than tracing a synchronous call chain. Eventual consistency means the system is temporarily inconsistent after an event is published.
For the full explanation, see How Event-Driven Architecture Works.