
Designing Data-Intensive Applications The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
Reviews

This book is incredibly useful if you spend time engineering software systems that process data (AKA all systems). In my career at Shopify I've spent time as a Data Engineer working on Hadoop/Spark batch processing systems, on the 'Merchant Analytics' team working on a stream processing and real-time analytics database, and as an application developer working on standard Rails apps. Having this book available to me would've been incredibly useful, and it contains many many lessons I've learned over the past couple of years, but written down in a way that's way clearer than I could ever formulate it.

A book explained all the modern database-like techs and how their internal works, insightful yet easy to understand, recommended for everyone who write code

This book is definitely a classic. The book basically touches upon the surface of a wide array of topics related to handling data in a distributed environment; ranging from basic database theory, ACID, replication and partitioning to more complex (and "modern") topics like stream and batch processing on the cloud. Martin Kleppman lays down all the needed information on what every engineer needs to know about designing systems that deal with any kind of data. Although the book doesn't dive into deep technical details, it has a very good bibliography and footnotes that leads you to all of the academic papers you need. Overall, the book is an essential read for any software/data engineer in 2019.




















