Event-Driven Architecture

Also known as: EDA

framework · computer science · organizing-schema

System organized around production, detection, and reaction to events.

Event-Driven Architecture organizes system components around the production, detection, and reaction to events — discrete records of something that has happened in the system or its environment. Components communicate by emitting events to a shared infrastructure (event bus, message broker, log) rather than calling each other directly, with consumers subscribing to event types they care about. The architecture was articulated as a distinct style by Brenda Michelson and others in the mid-2000s, building on earlier publish-subscribe and message-oriented middleware traditions. Two principal patterns within EDA: Event Notification (lightweight 'something happened' messages where consumers fetch additional data if needed) and Event-Carried State Transfer (events carry the full state needed for downstream consumers to operate independently). Event Sourcing is a related but distinct pattern in which events are also the canonical record of system state. Modern event-driven systems are commonly built on Apache Kafka, AWS Kinesis, RabbitMQ, or cloud-provider event services, and EDA has substantially shaped microservices integration patterns.

Originators

Multiple lineage; codified by Brenda Michelson, Hugh Taylor, Roy Schulte, Mani Chandy among others; foundational publish-subscribe work decades earlier medium

Year / Decade

Mid-2000s codification; foundational pub-sub patterns from 1980s-90s medium

Primary sources

Michelson, B. (2006). 'Event-Driven Architecture Overview', Patricia Seybold Group, Hohpe, G. & Woolf, B. (2003). Enterprise Integration Patterns, Fowler, M. (2017). 'What do you mean by 'Event-Driven'?' medium

Core components

Primary use case

Microservices integration and decoupling; real-time data processing pipelines; reactive systems; integration with legacy systems; foundation for modern data engineering (Kafka-centric architectures); event-sourced systems; CQRS implementations; complex event processing.

Common criticisms

Lineage

Siblings
CQRS, Event Sourcing, Domain-Driven Design, Microservices