githubEdit

Event-Driven Architecture

A software architecture paradigm promoting the production, detection, consumption of, and reaction to events.

Event-Driven Architecture (EDA) is a software design pattern in which the flow of the program is determined by events -- significant changes in state or occurrences that the system detects and responds to. Components communicate by producing and consuming events rather than through direct request-response calls.

In an event-driven system, event producers emit events to a message broker or event bus (such as Apache Kafka, AWS EventBridge, or RabbitMQ), and event consumers subscribe to and process events asynchronously. This decoupling allows components to evolve independently and improves system resilience, since a failure in one consumer does not block the producer.

Event-driven patterns complement API gateway architectures. An API gateway can accept synchronous HTTP requests from clients and publish them as events for asynchronous processing by backend services. This hybrid approach provides a clean external API interface while leveraging the scalability and loose coupling of event-driven processing internally. Serverless functions are natural event consumers, triggered by messages on queues or topics.

Last updated