Explorer
KNOW-REF-014

System Design Primer — Préparation aux interviews et design de systèmes

Domaine
dev-general
Type
reference
Priorité
P2

Parent : [[INDEX-DEV-GENERAL]]

System Design Primer

Source

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)

  1. Définir use cases, contraintes et hypothèses
  2. Créer un high-level design
  3. Concevoir les composants core
  4. 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