工具介绍
*English ∙ 日本語 ∙ 简体中文 ∙ 繁體中文 | العَرَبِيَّة ∙ বাংলা ∙ Português do Brasil ∙ Deutsch ∙ ελληνικά ∙ עברית ∙ Italiano ∙ 한국어 ∙ فارسی ∙ Polski ∙ русский язык ∙ Español ∙ ภาษาไทย ∙ Türkçe ∙ tiếng Việt ∙ Français | Add Translation*
**Help translate this guide!**
The System Design Primer
<p align="center">
<img src="images/jj3A5N8.png">
<br/>
</p>
Motivation
> Learn how to design large-scale systems.
>
> Prep for the system design interview.
Learn how to design large-scale systems
Learning how to design scalable systems will help you become a better engineer.
System design is a broad topic. There are a **vast number of resources scattered throughout the web** on system design principles.
This repo is an **organized collection** of resources to help you learn how to build systems at scale.
Learn from the open source community
This is a continually updated, open source project.
Contributions are welcome!
Prep for the system design interview
In addition to coding interviews, system design is a **required component** of the **technical interview process** at many tech companies.
**Practice common system design interview questions** and **compare** your results with **sample solutions**: discussions, code, and diagrams.
Additional topics for interview prep:
* Study guide
* How to approach a system design interview question
* System design interview questions, **with solutions**
* Object-oriented design interview questions, **with solutions**
* Additional system design interview questions
Anki flashcards
<p align="center">
<img src="images/zdCAkB3.png">
<br/>
</p>
The provided Anki flashcard decks use spaced repetition to help you retain key system design concepts.
* System design deck
* System design exercises deck
* Object oriented design exercises deck
Great for use while on-the-go.
Coding Resource: Interactive Coding Challenges
Looking for resources to help you prep for the **Coding Interview**?
<p align="center">
<img src="images/b4YtAEN.png">
<br/>
</p>
Check out the sister repo **Interactive Coding Challenges**, which contains an additional Anki deck:
* Coding deck
Contributing
> Learn from the community.
Feel free to submit pull requests to help:
* Fix errors
* Improve sections
* Add new sections
* Translate
Content that needs some polishing is placed under development.
Review the Contributing Guidelines.
Index of system design topics
> Summaries of various system design topics, including pros and cons. **Everything is a trade-off**.
>
> Each section contains links to more in-depth resources.
<p align="center">
<img src="images/jrUBAF7.png">
<br/>
</p>
* System design topics: start here
* Step 1: Review the scalability video lecture
* Step 2: Review the scalability article
* Next steps
* Performance vs scalability
* Latency vs throughput
* Availability vs consistency
* CAP theorem
* CP - consistency and partition tolerance
* AP - availability and partition tolerance
* Consistency patterns
* Weak consistency
* Eventual consistency
* Strong consistency
* Availability patterns
* Fail-over
* Replication
* Availability in numbers
* Domain name system
* Content delivery network
* Push CDNs
* Pull CDNs
* Load balancer
* Active-passive
* Active-active
* Layer 4 load balancing
* Layer 7 load balancing
* Horizontal scaling
* Reverse proxy (web server)
* Load balancer vs reverse proxy
* Application layer
* Microservices
* Service discovery
* Database
* Relational database management system (RDBMS)
* Master-slave replication
* Master-master replication
* Federation
* Sharding
* Denormalization
* SQL tuning
* NoSQL
* Key-value store
* Document store
* Wide column store
* Graph Database
* SQL or NoSQL
* Cache
* Client caching
* CDN caching
* Web server caching
* Database caching
* Application caching
* Caching at the database query level
* Caching at the object level
* When to update the cache
* Cache-aside
* Write-through
* Write-behind (write-back)
* Refresh-ahead
* Asynchronism
* Message queues
* Task queues
* Back pressure
* Communication
* Transmission control protocol (TCP)
* User datagram protocol (UDP)
* Remote procedure call (RPC)
* Representational state transfer (REST)
* Security
* Appendix
* Powers of