Leçon 0 : pourquoi concevoir la mise à l'échelle d'un système à l'avance ?
Un projet perso fonctionne parfaitement. Dix utilisateurs se connectent, écrivent, lisent — tout répond instantanément. Un seul serveur, une seule base de données, du code qui s'exécute ligne par ligne (synchrone) — pourquoi compliquer les choses ? Maintenant, imagine ce même code, sans qu'une seule
Le System Design, c'est comme planifier une route avant qu'une ville entière ne se construise autour : facile de corriger un tracé sur le papier, très difficile de démolir et reconstruire une route déjà pleine de voitures.
- Échelle (Scale)
- Le nombre d'utilisateurs, de requêtes ou de données que le système doit servir en même temps. Le même code peut fonctionner à merveille à petite échelle et s'effondrer à grande échelle, sans le moindre changement dans sa logique.
- Trade-off d'échelle
- Un choix conscient entre deux bonnes propriétés quand on ne peut pas maximiser les deux à la fois — par exemple rapidité contre cohérence, coût contre fiabilité, ou simplicité contre flexibilité. Il n'y a pas une seule bonne réponse ; il n'y a qu'un choix adapté aux contraintes du moment.
- Entretien System Design
- Un format d'entretien technique courant dans les entreprises sensibles à l'échelle, qui vérifie non seulement si le/la candidat·e écrit du code correct, mais aussi s'il/elle sait justifier des trade-offs sous des contraintes réelles — exactement la compétence qui protège aussi les systèmes réels de l'effondrement.