Browse the Knowledge Hub211 resources
Designing Data-Intensive Applications: is it worth reading?
How distributed data systems actually behave, including all the ways they fail that tests rarely cover.
We earn nothing from any link on this page. No affiliate links anywhere in this library.
- published
- 2017
- key ideas
- 3
- reading path
- 1

Designing Data-Intensive Applications
by Martin Kleppmann
- Publisher
- O'Reilly
- Year
- 2017
- ISBN
- 9781449373320
Useful when you are: Senior / lead
Verdict
Should you read it?
Read it if
You test anything with a database under concurrency, or you have ever been unsure whether an isolation level would prevent a particular anomaly.
Skip it if
You want something quick. It is long, dense and genuinely demanding, though exceptionally clear for its difficulty.
The argument
What it argues
A rigorous treatment of the systems underneath most applications: storage engines, replication, partitioning, transactions, consistency models and consensus. It explains not just how they work but what guarantees they actually provide, which is usually weaker than people assume.
The chapters on transactions and consistency are the most valuable for a tester. They explain precisely what isolation levels do and do not prevent, which is the difference between a test suite that would catch a lost update and one that would not.
It is also the best explanation available of why eventual consistency makes testing hard, and what the honest options are.
Key ideas
Ideas worth taking from it
- 01
Consistency models made precise
Read committed, snapshot isolation, serialisable, linearisable. What each actually guarantees, rather than the loose way these terms are usually used.
- 02
The reality of distributed systems
Networks partition, clocks disagree, nodes fail silently. Every assumption a test makes about a distributed system should be checked against this chapter.
- 03
Weak isolation anomalies
Dirty reads, lost updates, write skew, phantoms. Named concurrency defects that serial testing cannot find by construction.
Criticism
What has dated, and what it gets wrong
The length and depth put off readers who would benefit from the first half. It is also from 2017, so some specific technology discussion has dated, though the fundamentals have not. A second edition has been in progress for some time.
Reading paths
On our reading paths
Performance and reliability
Book 2 of 4 · Performance testing
Explains replication, partitioning and consistency, so you can predict where a data-heavy system will break under load and design the test that proves it.
Keep reading
What to read next
Reads well with
Related on QAble
Database testing interview questions
Reading about quality is cheaper than learning it in production.
QAble runs QA for products in BFSI, gaming, healthcare and SaaS, with engineers who have read these and argued about them. Start with a free QA audit.


