Designing Data-Intensive Applications cover

Designing Data-Intensive Applications

Independent reading notes and implementations based onDesigning Data-Intensive Applications by Martin Kleppmann. AI tools were used only for grammar and clarity review.

Designing Data-Intensive Applications and its original content are the work of Martin Kleppmann and the respective copyright holders. These notes are independent commentary and do not reproduce the book.

Ch. 1 - Reliability, Scalability, Maintainabilityabout 8 min · January,2026

Every data system design decision is a bet against a specific way it will eventually break.

Ch. 2 - Data Models and Query Languagesabout 7 min · January,2026

A data model is a claim about which relationships are cheap to query and which ones you pay for later.

Ch. 3 - Storage and Retrievalabout 6 min · January,2026

A database is a promise about which reads and writes are fast, made concrete by one data structure.

Ch. 4 - Encoding and Evolutionabout 5 min · February,2026

Data outlives the code that wrote it. Encoding is the contract between versions of a program that will never run at the same time.

Ch. 5 - Replicationabout 5 min · March,2026

Copying the same data onto multiple machines trades durability and availability for a new kind of lie: the copies disagree, briefly, on purpose.

Ch. 6 - Partitioningabout 5 min · March,2026

Splitting data across machines is a hashing problem wearing an operations costume.

Ch. 7 - Transactionsabout 5 min · March,2026

A transaction is a promise to make a set of changes look atomic to everyone else, at a cost you get to choose.

Ch. 8 - The Trouble with Distributed Systemsabout 5 min · April,2026

Distributed systems are hard because the network and the clock both lie to you, and you cannot tell when they're doing it.

Ch. 9 - Consistency and Consensusabout 6 min · June,2026

Consensus is the act of getting machines that can't fully trust each other, the network, or time itself, to agree on one thing anyway.

Ch. 10 - Batch Processingabout 5 min · June,2026

Batch processing turns a dataset too large for one machine's memory into a sequence of operations small enough for any one machine to run.

Ch. 11 - Stream Processingabout 5 min · August,2026

A stream is a batch that never ends, which breaks every assumption batch processing was allowed to make about time.

Ch. 12 - The Future of Data Systemsabout 5 min · August,2026

Most real systems are not one database: they are several, kept in sync by derivation, and correctness is an end-to-end property, not a per-component one.