Designing Data-Intensive Applications versus Understanding Distributed Systems.
Both show up on every "best" list. They're not competitors. They're a sequence. Here's which one to read first, and when.
Reviewed by Ashish Sheth · Updated July 2026
Option A
Designing Data-Intensive Applications
Martin Kleppmann, Chris Riccomini · 2026
READ FULL REVIEW →
Author
Martin Kleppmann, Chris Riccomini
Roberto Vitillo
Pages
720
344
Published
2026
2022
Publisher
O'Reilly Media
Roberto Vitillo
Level
intermediate to advanced
intermediate
Amazon Rating
4.7/5 (312)
4.5/5 (112)
Goodreads Rating
4.55/5 (480)
4.37/5 (544)
Designing Data-Intensive Applications
Strengths
+ Best-in-class explanations of distributed systems fundamentals
+ Vendor-neutral: teaches principles, not specific tools
+ Excellent diagrams that make consensus and replication finally click
+ 2nd edition refreshes every chapter and adds AI/ML data systems coverage
Caveats
− Dense: not a weekend read, expect 3-4 months at one chapter per week
− Light on hands-on code; pair with a database internals book for implementation depth
− Some readers wish the new edition went deeper on cloud-native specifics
Understanding Distributed Systems
Strengths
+ Concise and readable, it covers a lot of ground in under 350 pages
+ Strong at connecting concepts rather than just listing them
+ Practical framing aimed at working developers, not researchers
+ A popular self-study and interview-prep companion to Designing Data-Intensive Applications
Caveats
− Breadth over depth: each topic is an introduction, not a deep dive
− Few worked code examples
− Readers who already know the basics may find parts too high-level
The verdict
Read Understanding Distributed Systems first to build foundations, then move to Designing Data-Intensive Applications for advanced concepts.
Designing Data-Intensive Applications
Check Price on Amazon →
Understanding Distributed Systems
Check Price on Amazon →
Frequently asked
Which is better, Designing Data-Intensive Applications or Understanding Distributed Systems?
Read Understanding Distributed Systems first to build foundations, then move to Designing Data-Intensive Applications for advanced concepts.
Is the 2nd edition of Designing Data-Intensive Applications worth buying if I already own the first?
If you read the first edition cover to cover already, the upgrade is incremental: every chapter is refreshed and there's new coverage of AI/ML data systems, cloud-native architectures, and modern streaming. If you skimmed the first or read it years ago, the 2nd edition is the better starting point.
Is Understanding Distributed Systems good for beginners?
It suits developers who can already build a web service but have not studied distributed systems formally. It assumes you know basic networking and databases, then explains communication, coordination, and consistency from there. Pure beginners to programming will find it fast paced.