Skip to content

Notes: Designing Data-Intensive Applications (Kleppmann)

The book I recommend most often to students moving into industry. Better than anything else for the gap between academic distributed systems and the practical problem of designing a system that will be on call.

What it does that the textbooks do not

Connects theory to product. The CAP theorem makes sense if you have already operated a system through a partition; otherwise it is just letters. Kleppmann grounds every theoretical claim in a concrete system.

The diagrams alone are worth the price. The illustration of a leaderless replication protocol on page 178 (first edition) is the clearest depiction of read repair I have seen.

Chapters I assign separately

  • Chapter 5 (Replication) for the distributed systems module.
  • Chapter 7 (Transactions) for the databases module. The treatment of weak isolation levels is the clearest in print.
  • Chapter 9 (Consistency and Consensus) for the masters module.

What it is not

It is not a substitute for a systems programming course. Students who read it without operating experience can recite the consistency model hierarchy without being able to implement any of them. That gap closes with practice.

Second edition

Out in late 2025. Apparently substantially revised for the post-cloud era. Will need to re-read for any updates to teaching material.