Fixez un délai d'expiration explicite sur chaque appel, plus court que votre propre échéance, et ne comptez jamais sur la valeur par défaut de la bibliothèque cliente. Ne rejouez que les opérations idempotentes, avec backoff exponentiel plus jitter et un petit nombre borné de tentatives. Ajoutez un disjoncteur pour que des échecs répétés échouent vite au lieu de s'empiler, et définissez à quoi ressemble le mode dégradé : une valeur en cache, une réponse partielle, ou une erreur claire plutôt qu'une requête qui pend.
Pourquoi les recruteurs posent cette question
Les reprises sont la façon classique dont un petit incident devient une panne, donc ça vérifie si vous comprenez l'amplification des reprises et le besoin d'une échéance globale. Le recruteur veut des détails : jitter, budgets, idempotence comme condition préalable à la reprise, et comportement de repli. Les réponses qui se contentent d'ajouter des reprises et un disjoncteur sans parler d'amplification suggèrent des concepts lus plutôt qu'exploités.
Comment structurer votre réponse
- Commencez par les délais d'expiration et la propagation de l'échéance.
- Énoncez la condition préalable à la reprise : l'opération est idempotente.
- Expliquez le backoff, le jitter et les budgets de reprise pour éviter l'amplification.
- Définissez le comportement dégradé que l'utilisateur obtient vraiment.
Exemple de réponse
La première chose, c'est un délai d'expiration sur chaque appel sortant, choisi à partir de la distribution des latences plutôt qu'au hasard, et toujours plus court que l'échéance qu'on m'a donnée, pour que j'échoue avant que mon appelant abandonne. Je propage cette échéance restante vers l'aval, sinon le travail continue sur une requête que plus personne n'attend. Les reprises ne s'appliquent qu'aux appels idempotents, et même là avec backoff exponentiel et jitter, plafonnées à deux ou trois tentatives. La raison du plafond, c'est l'amplification : si chaque couche réessaie trois fois, un hoquet en bas devient un ordre de grandeur de charge en plus, et c'est ainsi qu'une dépendance lente se transforme en panne totale. J'aime donc aussi un budget de reprise, où les reprises sont limitées à un petit pourcentage du total des requêtes. Un disjoncteur se pose au-dessus pour qu'une fois les échecs au-delà d'un seuil j'échoue immédiatement pendant une période de repos, avec des sondages occasionnels, ce qui m'évite d'empiler des requêtes sur quelque chose qui souffre déjà. Et je décide d'avance de ce que veut dire dégradé ; sur un service de tarification, on servait le dernier prix en cache avec un indicateur de fraîcheur plutôt que de faire échouer le paiement.
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
- Comment décidez-vous la valeur du délai d'expiration pour une dépendance donnée ?
- Qu'est-ce que l'amplification des reprises, et comment la détectez-vous dans les métriques ?
- Comment un disjoncteur décide-t-il de se refermer ?
Autres questions pour Développeur backend
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