Question d'entretien pour Développeur backend

Le trafic double et votre service commence à empiler les requêtes jusqu'à ce que tout expire. Que faites-vous ?

Ce que le recruteur cherche à évaluer, comment structurer votre réponse et un exemple parlé à adapter.

Réponse rapide

Appliquez de la contre-pression au lieu de tamponner. Bornez chaque file, délestez tôt avec un 429 ou un 503 quand les limites de concurrence sont atteintes, et rejetez les requêtes dont l'échéance est déjà passée plutôt que de travailler dessus. Les files non bornées transforment une surcharge en effondrement de la latence, parce que chaque requête attend derrière du travail que plus personne n'attend. Priorisez par niveau si une partie du trafic compte plus, et autoscalez sur un signal en avance de phase, comme la profondeur de file.

Pourquoi les recruteurs posent cette question

Ça distingue ceux qui ont été d'astreinte pendant une surcharge de ceux qui ne l'ont pas été. Le recruteur veut entendre qu'une file n'est pas de la capacité gratuite, que le délestage est un choix de conception légitime, et qu'abandonner du travail périmé restaure le débit. Ça sonde aussi votre intuition sur les files d'attente : passé la saturation, la latence monte sans aucune augmentation du débit utile.

Comment structurer votre réponse

  • Expliquez pourquoi tamponner aggrave la surcharge au lieu de l'améliorer.
  • Bornez les files et délestez avec un code de statut explicite.
  • Abandonnez le travail dont l'échéance a expiré.
  • Ajoutez de la priorisation et un signal de mise à l'échelle qui réagit à temps.

Exemple de réponse

Exemple parlé, à la première personne

L'instinct est d'agrandir la file, mais ça ne fait que convertir une surcharge en échec lent, parce que chaque requête attend derrière un arriéré et qu'au moment où elle est servie, le client a déjà abandonné. Donc la première chose que je fais, c'est borner la file et ajouter une limite de concurrence, et quand elle est pleine je renvoie immédiatement un 503 avec un retry after. Refuser vite est plus gentil qu'expirer lentement, pour l'utilisateur comme pour le système. Deuxièmement, je vérifie l'échéance avant de faire le travail : si la requête attend depuis plus longtemps que son budget, je l'abandonne, ce qui libère de la capacité pour les requêtes qui peuvent encore réussir. C'est ce seul changement qui restaure visiblement le débit pendant un incident. Ensuite la priorisation, parce que tout le trafic n'est pas égal ; sur un système, on délestait d'abord le trafic de synchronisation en arrière-plan et on gardait les requêtes interactives. Et je mets à l'échelle sur la profondeur de file ou la concurrence plutôt que sur le CPU moyen, puisque le CPU s'aplatit près de la saturation et réagit beaucoup trop tard pour être utile.

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 marche

Questions de relance à prévoir

  • Comment choisiriez-vous une limite de concurrence plutôt que de la deviner ?
  • Quelle est la différence entre délestage et limitation de débit ici ?
  • Comment évitez-vous que toutes les requêtes délestées réessaient en même temps ?

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

Répétez les questions difficiles avant qu'on vous les pose

Entraînez-vous avec un copilote en direct, puis présentez-vous prêt. Un Session Pass à $29 vous accompagne pendant l'entretien, sans abonnement et sans engagement.

Obtenir GhostPilot