Books about Designing Systems of Scale

Venkatesh-Prasad Ranganath
2 min readMay 26, 2020

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 a 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.

1) Scalability Rules

2) Architecting for Scale

3) Distributed Systems for Practitioners

4) Designing Data-Intensive Applications

5) Scalable Internet Architectures

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!

--

--

Venkatesh-Prasad Ranganath

Engineer / Ex-Academic / Ex-Researcher curious about software and computing.