Programming Concepts
Advanced
What is Event-Driven Architecture?
A software design pattern where components communicate by producing and consuming events rather than direct method calls.
Event-driven architecture decouples system components by having producers emit events (facts about what happened) and consumers react to events of interest. This enables loose coupling, independent scaling, and asynchronous processing. Events are typically distributed through message brokers (Kafka, RabbitMQ, AWS SNS/SQS). Patterns include event notification (lightweight signals), event-carried state transfer (events include full data), and event sourcing (storing all state changes as an immutable event log). CQRS (Command Query Responsibility Segregation) often accompanies event-driven systems, separating read and write models.