Book · System DesignAbout $50

Designing Data-Intensive Applications

The reference text on storage, replication, partitioning, transactions and consensus, written clearly enough to read straight through and rigorous enough to keep returning to. If you read one technical book this decade, most engineers would say this one.

Format

Book

Topic

System Design

Provider

Martin Kleppmann

Time needed

2 to 4 months

Level

Advanced

Access

About $50

What it is

A book about the data layer of modern systems: how storage engines work, what replication and partitioning really cost, what transactions guarantee, why distributed consensus is hard, and how stream and batch processing fit together.

Why it has the reputation it has

It refuses to hand wave. Where most material says a system is eventually consistent and moves on, this explains what anomalies that permits, what it takes to prevent them, and what you give up either way. It is also unusually well written for a technical book, with genuinely funny chapter epigraphs.

How to use it

Slowly. Two chapters is a reasonable month. The chapters on replication, partitioning and transactions are the ones that change how you think; the later stream processing chapters are excellent but more specialised.

Best for: any backend or platform engineer who wants the foundations rather than the interview answer. It is not a fast route to passing a design round, and it is a better long term investment than one.

system designdatabasebackendcomputer science

Ready to start?

Opens on Martin Kleppmann in a new tab.

Get access
Work with me

Stuck on something specific?

Writing only gets you so far. If you want an answer to your situation rather than the general case, book a session and we will work through it together. Every session is free; a few slots open each week.

Follow along

New writing, resources and project ideas land here first.