
Book
Designing Data-Intensive Applications
- Martin Kleppmann · Author
Explains how to design systems that evolve through events, state, and asynchronous coordination rather than linear transactions. Makes time, sequence, and accumulation explicit as the basis of system behavior.
Find this book ↗A foundational exploration of how modern systems manage data, state, and coordination across distributed environments. The book explains how systems maintain coherence while operating asynchronously and at scale. By grounding these ideas in real-world tradeoffs, it reveals how system behavior emerges from sequences of events and the accumulation of state over time.
A foundational work on how modern systems handle data, state, and coordination across time.
This book explains the mechanics behind distributed systems—how events are recorded, how state is derived and stored, and how systems maintain coherence despite operating asynchronously and across boundaries. It introduces core concepts such as logs, streams, replication, and consistency, showing how they shape system behavior over time.
Rather than presenting systems as static structures or linear flows, it reveals them as evolving processes—where meaning is built through sequences of events and the accumulation of state.
Why this belongs here
This book makes time, state, and sequence explicit as the foundation of system design.
It shifts thinking away from:
- request/response interactions
- stateless processing
- linear pipelines
…toward:
- event streams as the source of truth
- state as something accumulated and reconstructed over time
- systems coordinated through asynchronous relationships
It provides the conceptual and technical grounding for designing systems that:
- remember what has happened
- respond to patterns, not just inputs
- evolve through interaction rather than execute isolated transactions
It explains how to build systems that behave over time—not just operate in the moment.


