
Designing Data-Intensive Applications 2nd Edition
The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Martin Kleppmann & Chris Riccomini
Started 2026-08-12
About the Book
Designing Data-Intensive Applications by Martin Kleppmann provides a comprehensive guide for engineering reliable, scalable, and maintainable data systems. The text examines core trade-offs in modern data architecture, covering topics from storage engines to distributed system design.
Key Concepts
No concepts extracted yet.
Chapters
- 01
Trade-Offs in Data Systems Architecture
Frames the whole book: there are no solutions, only trade-offs. Walks the four biggest trade-offs in data systems — operational vs analytical, cloud vs self-hosting, distributed vs single-node, and business needs vs the rights of people in the data — while building the vocabulary (OLTP/OLAP, warehouse, system of record, derived data) the rest of the book depends on.
- 02
Defining Nonfunctional Requirements
- 03
Data Models and Query Languages
- 04
Storage and Retrieval
- 05
Encoding and Evolution
- 06
Replication
- 07
Sharding
- 08
Transactions
- 09
The Trouble with Distributed Systems
- 10
Consistency and Consensus
- 11
Batch processing
- 12
Stream Processing
- 13
A Philosophy of Streaming Systems
- 14
Doing the Right Thing
Applied in Practice
No practical applications connected yet.