Cheat sheetDS-02

Event-Driven Architecture

Distributed & Scalable / Event-Driven Architecture

Decouple producers from consumers with events — immutable past-tense facts — flowing through pub/sub over a persistent, replayable log.

01
Event vs commandEvent = fact ('OrderPlaced'), no recipient. Command = directed request ('PlaceOrder').
02
Pub/sub + logProducers publish to topics; Kafka retains an ordered log consumers read by offset and replay.
03
Eventual consistencyAsync consumers converge over time; expect transient lag windows.
04
Sourcing + CQRSStore state as the event log; separate write model from projected read models.

Model interactions as facts, not calls. Publish once; let independent consumers react. Design for replay and eventual convergence.

Fan-out'OrderPlaced' fans out to inventory, billing, and email — each independent and unaware of the rest.
ReplayA recovered consumer resumes from its offset and replays the missed slice of the log.
produce: topic 'orders' <- OrderPlaced{id, total}
consume A (inventory): read offset -> decrement stock
consume B (billing): read offset -> charge card (independent)
event-drivenpub-subkafkaeventual-consistencyevent-sourcingcqrs
review in 6d