Partez du principe que chaque message peut arriver plus d'une fois et rendez le traitement idempotent. Dérivez une clé stable du message, et soit vous la vérifiez et l'enregistrez dans un magasin avant d'agir, soit vous utilisez une écriture conditionnelle pour qu'une répétition ne fasse rien. Réglez le délai de visibilité au-dessus de votre pire temps de traitement, prolongez-le pour les travaux longs, et envoyez les messages vers une file de lettres mortes après quelques échecs pour que les messages empoisonnés ne bloquent pas la progression.
Pourquoi les recruteurs posent cette question
La livraison en double fait partie de ces réalités qui séparent ceux qui ont exploité des systèmes distribués de ceux qui en ont seulement lu la théorie. Le recruteur veut l'idempotence comme première réponse, exprimée concrètement et pas comme un mot, plus les détails opérationnels comme les délais de visibilité et les files de lettres mortes. Gérer correctement l'ordre et les échecs partiels, c'est ce qui transforme un consommateur qui marche en consommateur fiable.
Comment structurer votre réponse
- Acceptez les doublons comme normaux et faites de l'idempotence le centre du design.
- Donnez un mécanisme d'idempotence concret, pas juste le terme.
- Couvrez les délais de visibilité et le travail de longue durée.
- Traitez les messages empoisonnés, les reprises avec backoff et l'ordre.
Exemple de réponse
Je pars du principe que chaque message arrivera au moins deux fois à un moment donné, en général parce qu'un consommateur était lent et que le délai de visibilité a expiré alors que le travail était déjà validé. Donc le consommateur doit être idempotent, et je veux que ce soit concret plutôt qu'une intention. En général c'est une clé d'idempotence tirée du message, soit un identifiant posé par le producteur, soit un hachage du contenu significatif, enregistrée dans une table avec une contrainte d'unicité, dans la même transaction que le travail. Si l'insertion entre en conflit, c'est qu'on l'a déjà fait : on acquitte et on passe. Quand l'effet est une écriture dans un magasin, je préfère une mise à jour conditionnelle, comme ça l'appliquer deux fois aboutit au même état. Côté exploitation, le délai de visibilité doit dépasser le temps de traitement le plus lent réaliste, et pour les travaux vraiment longs je prolonge le bail au fur et à mesure plutôt que de fixer un énorme délai global. Les échecs sont rejoués avec backoff exponentiel et gigue, et après un petit nombre de tentatives le message part vers une file de lettres mortes avec l'erreur attachée, pour qu'un mauvais message ne bloque jamais les autres.
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 gérez-vous un effet de bord qu'on ne peut pas rendre idempotent, comme l'envoi d'un e-mail ?
- Comment retraiteriez-vous une file de lettres mortes en toute sécurité ?
- Qu'est-ce qui change si vous avez aussi besoin d'un ordre strict ?
Autres questions pour Ingénieur cloud
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