A field guide to
Designing Data-Intensive Applications
Twelve curated topics covering the ideas that matter most — replication, partitioning, consensus, and the storage and processing models underneath them — each with a diagram, a real-world example, and a code snippet. Not a substitute for depth, but a fast, memorable route to the big picture.
Part I — Foundations
Reliability, Scalability, Maintainability
The three concerns Kleppmann uses to evaluate every data system decision in the rest of the book.
Data Models: Relational vs. Document vs. Graph
Every data model makes some queries easy and others awkward — the choice shapes how you're allowed to think about your data.
Storage Engines: B-Trees vs. LSM-Trees
The two dominant strategies for turning a stream of writes into something you can read back efficiently.
Encoding & Schema Evolution
Turning in-memory data structures into bytes — and making sure old and new code can still talk to each other.
Part II — Distributed Data
Replication
Keeping copies of the same data on multiple machines — and living with the consequences when they briefly disagree.
Partitioning
Splitting data across many nodes so a dataset (and its query load) can scale beyond what a single machine can hold.
Transactions
The contract a database offers for grouping several operations into one all-or-nothing unit — and what each isolation level actually promises.
The Trouble with Distributed Systems
Why distributed systems are fundamentally unreliable — clocks drift, networks lie, and processes pause for longer than you think.
Consistency & Consensus
The strongest guarantees distributed systems can offer — and the algorithms (quorums, consensus protocols) that make them possible despite unreliable networks.
Part III — Derived Data
Batch Processing
Turning large, bounded datasets into derived outputs — the origin of MapReduce and the dataflow engines that followed it.
Stream Processing
Processing an unbounded sequence of events as they happen, instead of waiting for a batch job to run on yesterday's data.
The Future of Data Systems
How the ideas from every earlier topic combine into a broader philosophy: derived data, unbundled databases, and correctness at scale.