Question d'entretien pour Ingénieur SRE

Comment rendez-vous un endpoint d'écriture sûr à réessayer ?

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

Réponse rapide

Donnez au client une clé d'idempotence, stockez-la à côté du résultat de la première écriture réussie, et renvoyez ce résultat stocké à toute répétition. Imposez l'unicité au niveau de la base de données pour que les doublons concurrents entrent en collision au lieu d'écrire deux fois. Cadrez les clés par client, faites-les expirer après une fenêtre raisonnable, et utilisez la clé métier naturelle, comme un identifiant de commande, comme ancre de déduplication chaque fois qu'il en existe une.

Pourquoi les recruteurs posent cette question

Toute politique de retry est dangereuse sans idempotence, donc cette question teste si vous savez boucler la boucle. Les recruteurs cherchent la contrainte d'unicité au niveau de la base, parce que les vérifications applicatives perdent la course en situation de concurrence. Les bonnes réponses gèrent aussi le cas en vol : ce que doit faire la deuxième requête pendant que la première tourne encore.

Comment structurer votre réponse

  • Présentez la clé d'idempotence et d'où elle vient.
  • Stockez la clé, l'empreinte de la requête et la réponse ensemble dans une seule transaction.
  • Imposez l'unicité dans la base pour que les courses échouent bruyamment.
  • Dites ce qui se passe sur une répétition pendant que le premier appel est encore en vol.
  • Mentionnez le cadrage et l'expiration des clés.

Exemple de réponse

Exemple parlé, à la première personne

Le client génère une clé d'idempotence, en général un UUID, et l'envoie en en-tête. Côté serveur, je tiens une table indexée sur l'identifiant client plus cette clé avec une contrainte d'unicité, et j'écris la clé et la réponse dans la même transaction que l'écriture métier. Une répétition heurte alors la contrainte d'unicité ou trouve la ligne stockée et rejoue simplement la réponse originale, donc les retries sont gratuits. Deux détails comptent. D'abord, l'unicité doit vivre dans la base, parce que si vous faites un select puis un insert, deux retries concurrents passeront tous les deux la vérification. Ensuite, il faut décider quoi faire quand la deuxième requête arrive pendant que la première tourne encore. On renvoyait un 409 avec un Retry-After plutôt que de bloquer, ce qui gardait notre pool de connexions en bonne santé. Je stocke aussi un hachage du corps de la requête pour que réutiliser une clé avec un contenu différent soit rejeté au lieu de renvoyer silencieusement la mauvaise réponse.

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

  • Que renvoyez-vous si la même clé arrive avec une charge utile différente ?
  • Combien de temps conserveriez-vous les clés d'idempotence, et pourquoi ?
  • Comment ça marche quand l'écriture s'étend sur deux services ?

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

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