System Design: Event Driven Architecture

May 11, 2026 (2w ago)

An event-driven architecture uses events to trigger and communicate between decoupled services and is common in modern applications built with microservices.

An event is a change in state or an update, such as an item being added to a shopping cart on an e-commerce website.

Events can either carry the state (the item purchased, its price, and a delivery address) or events can be identifiers (a notification that an order was shipped).

Event-driven architectures have three key components:

A producer publishes an event to the router, which filters it and pushes it to consumers.

Producer services and consumer services are decoupled, which allows them to be scaled, updated, and deployed independently.

There are 2 mechanisms:

Push-Based:

Pros:

Cons:

Pull-Based:

Pros:

Cons:

How to decide: Push or Pull?

Depends on factors like use cases, latency needs, and control requirements:

Latency Requirements:

Consumer workload:

Backpressure:

Thanks for reading!

Queue
System Design
Event-Driven
Architecture

Author

Shailesh Jadav