This book is a must-read for anyone working on modern, large-scale applications. It starts out diving into the finer points of database design and works its way up to a wide array of system design patterns, ranging from messaging to batch processing. There were dozens of points in the book when I thought to myself, gosh I wish I had known about this idea five or ten years ago - it’s quite common in systems design to encounter the kinds of problems addressed in this book. The ability to pattern-match a problem “in the wild” to a common dilemma in systems design is absolutely indispensable. This book is quite long, but the insight it provides is well worth the time to read it quite carefully.