Latence vs Throughput : Vitesse vs Volume
Imaginez un tuyau d'arrosage. La Latence, c'est le temps que met la première goutte d'eau pour aller du robinet au bout du tuyau. Le Throughput (débit), c'est la quantité d'eau totale qui sort du tuyau par seconde.
En System Design, c'est pareil ! Comprendre cette différence est crucial pour savoir si votre système est "lent" ou juste "surchargé".
Le Duel : Le temps du trajet vs Le trafic
- Définition : Temps pour effectuer une seule action du début à la fin.
- Unité : Millisecondes (ms).
- Objectif : Être le plus bas possible (le plus rapide).
- Définition : Nombre d'actions réussies par unité de temps.
- Unité : Requêtes par seconde (RPS) ou Go/s (pour les données).
- Objectif : Être le plus haut possible (le plus gros volume).
Visualisation

Tableau Comparatif
| Critère | Latence | Throughput (Débit) |
|---|---|---|
| Question clé | "Combien de temps ça prend pour UN utilisateur ?" | "Combien d'utilisateurs TOTAL je peux gérer ?" |
| Contexte Client | Expérience Utilisateur (Clic, temps de chargement d'une page) | Scalabilité (Gérer des millions d'utilisateurs) |
| Comment l'améliorer ? | Réduire la distance (CDN), optimiser le code, utiliser un Cache (Redis) | Ajouter des serveurs (Scale Out), faire les choses en parallèle (Async) |
Le Compromis (Trade-off)
Le paradoxe : améliorer l'un peut dégrader l'autre
C'est le dilemme classique.
Prenons l'exemple du "Batching" (regrouper plusieurs petites requêtes pour les envoyer en une seule grosse à la base de données).
- ✅ Throughput : C'est génial ! La base de données est plus efficace, elle gère plus de données au total.
- ❌ Latence : C'est mauvais pour la première requête du groupe, qui doit attendre que les autres arrivent avant d'être envoyée. Son temps d'attente augmente.
Les Pièges Classiques
Ne dites jamais "Ma latence moyenne est de 100ms". Si 1% de vos utilisateurs attendent 10 secondes, votre moyenne sera bonne, mais ces utilisateurs seront furieux.
Solution : Parlez en Percentiles (p95, p99). "99% de mes utilisateurs ont une réponse en moins de 200ms". C'est beaucoup plus honnête.
Le "Ping" n'est que le temps de trajet réseau. La latence totale inclut aussi le temps que le serveur passe à travailler (CPU) et le temps passé à attendre dans une file (Queueing).
Rappel : Latence Totale = Trajet Réseau + Temps de Traitement + Attente.
En Entretien (Le "System Design Interview")
Avant de dessiner quoi que ce soit, posez la question cruciale :
Flash Quiz
À toi de jouer
Mission : Identifier le goulot d'étranglement
Dessine un flux simple : Client ➔ Serveur ➔ Base de Données.
Les temps :
1. Client ➔ Serveur : 50ms
2. Serveur ➔ Base de Données (Lecture) : 800ms (Aïe !)
Ta mission : Où est le problème de latence ? Dessine une solution (indice : un carré magique entre le Serveur et la DB) pour drastiquement réduire ce temps.
Pour les curieux (Bonus)
L = λ * WEn français : Le nombre de clients dans votre magasin (L) est égal au nombre de clients qui entrent par minute (λ, le débit) multiplié par le temps moyen qu'ils passent à l'intérieur (W, la latence). Si votre caissier est lent (latence élevée), votre magasin se remplit !