Monal Gupta

Designing Data-Intensive Applications

Martin Kleppmann · 2017

The reference for anyone building systems that move data around.

Kleppmann threads a coherent story through storage engines, replication, partitioning, consensus, and stream processing. Every chapter is grounded in the papers and production systems that shaped the field.

It is the book I recommend to anyone who wants to reason about tradeoffs in distributed systems without hand-waving.