Parent : [[INDEX-DEV-GENERAL]]
System Design Primer
Source
- Repository : https://github.com/donnemartin/system-design-primer
- Type : Guide communautaire open source + flashcards Anki
- Auteur : donnemartin
Résumé
Ressource de référence pour apprendre à concevoir des systèmes à grande échelle et se préparer aux entretiens de system design. Couvre les concepts fondamentaux, les calculs rapides (back-of-the-envelope), et des cas pratiques avec solutions.
Contenu clé
Méthode de design (4 étapes)
- Définir use cases, contraintes et hypothèses
- Créer un high-level design
- Concevoir les composants core
- Scaler le design et identifier les bottlenecks
Sujets couverts
- Performance vs scalabilité
- Latence vs throughput
- Disponibilité vs cohérence (CAP theorem)
- Patterns de cohérence (weak, eventual, strong)
- Patterns de disponibilité (fail-over, replication)
- DNS, CDN, load balancer, reverse proxy
- Application layer (microservices, service discovery)
- Bases de données (SQL, NoSQL, sharding, replication)
- Cache (client, CDN, web server, DB, application)
- Asynchronisme (message queues, task queues, back pressure)
- Communication (HTTP, TCP, UDP, RPC, REST)
- Calculs back-of-the-envelope
Exercices résolus
- URL shortener (Pastebin / Bit.ly)
- Twitter timeline et recherche
- Web crawler
- Mint.com
- Social network data structures
- Key-value store
- Amazon sales ranking
- Scaling to millions of users on AWS
Quand consulter
- Avant un entretien de system design.
- Quand tu dois scaler un produit existant.
- Pour structurer une discussion d'architecture.
Mode d'emploi opérationnel
Le dépôt est un support d'apprentissage et d'entretien, pas une architecture à copier. Pour un produit réel : chiffrer les hypothèses, poser les SLO, dessiner le flux minimal, identifier le premier goulot mesuré puis documenter chaque brique ajoutée avec ses modes de panne et son coût d'exploitation. Voir [[KNOW-PAT-241]].
Références connexes
- [[KNOW-REF-013]] — The Architecture of Open Source Applications
- [[KNOW-REF-015]] — ByteByteGo System Design 101
- [[KNOW-REF-012]] — Stacks réelles d'entreprises
- [[KNOW-PAT-197]] — Stack Chooser 2026
- [[KNOW-PAT-241]] — architecture guidée par contraintes et seuils
- [[KNOW-REF-062]] — carte de références backend par décision