binhnguyennus /awesome-scalability

The Patterns of Scalable, Reliable, and Performant Large-Scale Systems

★ 75,616⑂ 7,245👁 1,865⑃ 122● 0▤ 0◈ 0
MITCreated 2017-12-27
75,616
stars
+28+304+992
7,245
forks
1,865
watchers
122
prs
0
issues
0
releases
0
discussions

README

An updated and organized reading list for illustrating the patterns of scalable, reliable, and performant large-scale systems. Concepts are explained in the articles of prominent engineers and credible references. Case studies are taken from battle-tested systems that serve millions to billions of users.

 If your system goes slow
 Understand your problems: scalability problem (fast for a single user but slow under heavy load) or performance problem (slow for a single user) by reviewing some design principles and checking how scalability and performance problems are solved at tech companies. The section of intelligence are created for those who work with data and machine learning at big (data) and deep (learning) scale.

 If your system goes down
 "Even if you lose all one day, you can build all over again if you retain your calm!" - Thuan Pham, former CTO of Uber. So, keep calm and mind the availability and stability matters! 

 If you are having a system design interview
 Look at some interview notes and real-world architectures with completed diagrams to get a comprehensive view before designing your system on whiteboard. You can check some talks of engineers from tech giants to know how they build, scale, and optimize their systems. Good luck!

 If you are building your dream team
 The goal of scaling team is not growing team size but increasing team output and value. You can find out how tech companies reach that goal in various aspects: hiring, management, organization, culture, and communication in the organization section.

 Community power

 Contributions are greatly welcome! You may want to take a look at the contribution guidelines. If you see a link here that is no longer maintained or is not a good fit, please submit a pull request!

 Many long hours of hard work have gone into this project. If you find it helpful, please share on Facebook, on Twitter, on Weibo, or on your chat groups! Knowledge is power, knowledge shared is power multiplied. Thank you!

 Content
- Principle
- Scalability
- Availability
- Stability
- Performance
- Intelligence
- Architecture
- Interview
- Organization
- Talk
- Book

 Principle
 Lessons from Giant-Scale Services - Eric Brewer, UC Berkeley & Google
 Designs, Lessons and Advice from Building Large Distributed Systems - Jeff Dean, Google
 How to Design a Good API & Why it Matters - Joshua Bloch, CMU & Google
 On Efficiency, Reliability, Scaling - James Hamilton, VP at AWS
 Principles of Chaos Engineering
 Finding the Order in Chaos
 The Twelve-Factor App
 Clean Architecture
 High Cohesion and Low Coupling
 Monoliths and Microservices
 CAP Theorem and Trade-offs
 CP Databases and AP Databases
 Stateless vs Stateful Scalability	
 Scale Up vs Scale Out: Hidden Costs
 ACID and BASE
 Blocking/Non-Blocking and Sync/Async
 Performance and Scalability of Databases
 Database Isolation Levels and Effects on Performance and Scalability
 The Probability of Data Loss in Large Clusters
 Data Access for Highly-Scalable

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON