Books about Designing Systems of Scale

These books cover design trade-offs to consider when scaling systems, the cost and benefits of each design choice, and how current technologies embrace and influence these design choices. They do so while being focused on practice.

Books 1 and 2 are more high-level and cover aspects relevant when designing and operating the system. They are light on nitty-gritty low-level design/implementation details. If you can read only one of these, then I recommend “Architecting for Scale” as it provides a more detailed exposition of topics such as risk, reliability, and SLA, which I think are crucial to know when dealing with systems of scale.

Books 3 and 4 go beyond high-level design and into low-level design / implementation patterns currently inherent in systems of scale. They cover common problems in (distributed) systems of scale along with different algorithms used to tackle these common problems. They also present the algorithms in connection with prevalent technologies; both as case studies (book 3) and as examples (book 4).

Book 5 is a bit dated but it covers most of the common architectural/design concerns in internet scale systems.

As for the reading recommendation, I recommend starting by skimming the fifth book. Then, reading the second book followed by skimming the first book. Finally, reading the fourth book followed by the third book. Make sure you have a highlighter when reading books 2, 3, and 4. Also, set aside time to do deep dives when reading the third and fourth books.

Happy reading!

Programming, experimenting, writing | Past: SWE, Researcher, Professor | Present: SWE

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store