Designing Data-Intensive Applications
Martin Kleppmann
About
An in-depth guide to the core technologies behind modern, data-intensive backends. It covers data models, replication, partitioning, transactions, and consensus protocols in detail.
Rating
5/5My take
“Changed how I think about building backends entirely. Before this, I treated databases as black boxes. After it, I understood why certain architectural choices — like event logs, LSM trees, or quorum writes — exist and what they actually trade off. If you're building anything that touches data at scale, this is non-negotiable reading.”
Key takeaway
Every system eventually fails. Design for failure from the start, not as an afterthought. The choice between consistency and availability isn't academic — it shows up in every product decision you make.