The Patterns of Scalable, Reliable, and Performant Large-Scale Systems
Go to file
2018-01-29 17:27:41 +08:00
CONTRIBUTING.md Create CONTRIBUTING.md 2017-12-27 11:48:12 +08:00
README.md Optimizing APIs through Dynamic Polyglot Runtime, Fully Asynchronous, and Reactive Programming at Netflix 2018-01-29 17:27:41 +08:00

Awesome Scalability, Availability, and Stability Back-end Design Patterns

Awesome

A curated list of selected readings to illustrate Scalability, Availability, and Stability Design Patterns in Back-end Development. Concepts are explained in the articles of notable engineers (Werner Vogels, James Hamilton, Martin Fowler, Robert C. Martin, Tom White, etc) and high quality reference sources (highscalability.com, infoq.com, etc). Case studies are taken from battle-tested systems those are serving millions of users (Netflix, Instagram, Riot Games, LINE, Expedia, etc).

What if your Back-end went slow?

Understand your problems: performance problem (slow for a single user) or scalability problem (fast for a single user but slow under heavy load) by reviewing design principles. You can also check some talks of elite engineers from tech giants (Google, Facebook, Netflix, etc) to see how they build and scale their systems.

What if your Back-end went down?

"Even if you lose all one day, you can build all over again if you retain your calm!" - Thuan Pham, CTO at Uber Technologies Inc.

Community Power

Contributions are greatly welcome! You may want to take a look at the contribution guidelines. If you find this project helpful, please help me share it to more and more people! Thank you very much!

Contents

Principles

Scalability

Availability

Stability

Performance

Others

Talks

Books

Special Thanks

License

CC-BY

This work is licensed under a Creative Commons Attribution 4.0 International License.