Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks and external references only when you need alternate exposition, worked examples, or production-grade depth.

Source Roles

SourceRoleWhy it is here
Fundamentals of Software Architecture (Richards & Ford), Ch. 14Primary teaching sourceThe single best short architectural treatment of event-driven; both topologies and the async capabilities
System Design Primer (Martin, open source)Selective supportConcise framing of async, queues, and communication styles
Kafka / Confluent official docsOperational depthCanonical reference for log-based broker mechanics
Martin Fowler's event-driven essaysConceptual anchorThe four-lens framing that keeps the vocabulary honest
Microservices.io (Richardson)Pattern catalogOutbox, saga, CQRS, event sourcing entries

Read Only If Stuck

Events as a Mental Model (Cluster 1)

Messaging Patterns (Cluster 2)

Brokers and Log-Based Systems (Cluster 3)

Distributed Workflow with Events (Cluster 4)

Event Sourcing and CQRS (Cluster 5)

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
An event is an immutable fact about the pastFowler: What do you mean by "Event-Driven"?The cleanest modern articulation of event vs non-event
Events vs commands vs requestsRichards & Ford: Request-Reply paired with Fowler's essayPair gives both the async mechanics and the intent distinctions
The shift from CRUD to eventsKleppmann: Turning the Database Inside Out (talk)The reframing is clearest as a 50-minute lecture
Publish-subscribe vs point-to-pointSystem Design Primer: Asynchronism and EIP Pub-SubCompact operational framing + canonical pattern
Event notification vs ECSTFowler: Event-Driven essay -- ECST and Notification sectionsSource of the terms
Outbox patternMicroservices.io: Transactional outbox + Debezium routerPattern catalog + production implementation
Queue semantics (JMS/AMQP/SQS)AWS SQS Developer Guide + RabbitMQ AMQP modelTwo canonical hosted/self-hosted references
Log-based brokers (Kafka design)Apache Kafka docs -- DesignCanonical reference
Consumer groups, partitions, orderingConfluent: Consumer Groups ExplainedOperational depth missing from the main docs
Choreography vs orchestrationRichards & Ford: Mediator Topology paired with Microservices.io: SagaGives both sides of the split
SagasMicroservices.io: Saga pattern + McCaffrey talkPattern entry + modern practice
Idempotency and exactly-onceConfluent: Exactly-once Semantics Are PossibleThe honest version of the story, including EOS boundaries
Event sourcingFowler: Event SourcingShort, clear, influential
Projections and read modelsConfluent: Materialized ViewsPractical treatment with stream-processing framing
CQRSFowler: CQRSThe decision framing, including his own warnings against overuse