Les retries naïfs multiplient la charge exactement quand un service peine déjà, et des clients synchronisés réessaient en vagues coordonnées. Utilisez un backoff exponentiel avec full jitter, plafonnez le nombre total de tentatives, et ne réessayez que des opérations idempotentes sur des erreurs réessayables. Ajoutez un budget de retry côté client pour que les retries restent une petite fraction du trafic, plus un circuit breaker pour arrêter complètement les appels quand les taux d'échec s'envolent. Ne réessayez jamais indépendamment à chaque couche de la pile.
Pourquoi les recruteurs posent cette question
Les tempêtes de retries sont l'une des causes les plus fréquentes de transformation d'une petite panne en panne totale, donc cette question sépare les candidats qui ont débogué une vraie défaillance en cascade de ceux qui ont seulement configuré une bibliothèque client. Le recruteur attend le jitter, les budgets, l'idempotence, et surtout le point sur les retries en couches qui multiplient les tentatives.
Comment structurer votre réponse
- Expliquez l'amplification : les retries ajoutent de la charge pendant la panne.
- Nommez le jitter explicitement, pas seulement le backoff exponentiel.
- Limitez les retries aux opérations idempotentes et aux codes de statut réessayables.
- Ajoutez un budget de retry et un circuit breaker comme plafond.
- Alertez sur la multiplication à travers les couches imbriquées.
Exemple de réponse
Le problème, c'est que les retries sont de la charge supplémentaire appliquée au pire moment possible. Si un service échoue à 50% et que chaque client réessaie trois fois, vous venez de tripler le trafic qui frappe quelque chose qui est déjà au-delà de sa capacité, et il n'a jamais l'occasion de récupérer. Le backoff exponentiel simple ne suffit pas non plus, parce que tous vos clients ont échoué au même instant, donc ils se réveillent tous au même instant. Le full jitter corrige ça : le temps d'attente est une valeur aléatoire entre zéro et le plafond de backoff courant. Au-delà, je ne réessaierais que des appels idempotents, uniquement sur des 503, des 429 et des erreurs au niveau connexion, jamais sur un 400, et j'imposerais un budget de retry pour plafonner les retries à quelque chose comme 10% du total des requêtes. Celui qui nous a mordus, c'était l'empilement. Le SDK réessayait trois fois, le mesh deux fois, et l'ordonnanceur de jobs encore une fois, ce qui fait dix-huit tentatives pour un seul appel logique.
Vous passez cet entretien bientôt ? GhostPilot écoute votre appel en direct, repère la question dès qu'elle est posée et affiche une réponse structurée à l'écran en temps réel. Essayez-le lors de votre prochain entretien blanc, ou prenez un Session Pass à $29, sans abonnement, pour le jour J.
Voir comment ça marcheQuestions de relance à prévoir
- Quelle est la différence entre full jitter et decorrelated jitter ?
- Quels codes de statut HTTP peut-on réessayer sans danger, et pourquoi ?
- Comment empêcheriez-vous les retries de se multiplier à travers un service mesh ?
Autres questions pour Ingénieur SRE
Votre recruteur posera sa propre version de celle-ci. Collez votre véritable fiche de poste dans le Question Predictor gratuit et obtenez les 20 questions que ce poste a le plus de chances de poser, avec ce que chacune cherche vraiment à sonder.
Prédire mes questions