Vous renoncez à une transaction distribuée unique et vous utilisez une saga : une séquence de transactions locales où chaque étape publie un événement qui déclenche la suivante, et chaque étape a une action de compensation pour l'annuler. La cohérence devient éventuelle, donc le travail de conception consiste à décider quoi compenser, quoi rejouer et quoi escalader vers un humain. Modélisez le flux explicitement, soit par chorégraphie via des événements, soit coordonné par un orchestrateur.
Pourquoi les recruteurs posent cette question
Le recruteur teste si vous vous jetez sur un commit à deux phases ou si vous comprenez pourquoi presque personne ne l'exécute entre services. Il veut entendre parler des actions de compensation, de l'idempotence, de la différence sémantique entre annulation et remboursement, et de la façon dont vous gardez la machine à états visible. Ça sonde aussi si vous remettriez en question les frontières de service au départ, puisque certaines de ces étapes pourraient aller ensemble.
Comment structurer votre réponse
- Expliquez pourquoi une transaction distribuée n'est pas la réponse.
- Définissez la saga : transactions locales plus compensations.
- Comparez chorégraphie et orchestration et choisissez-en une.
- Traitez les parties pénibles : échec partiel, reprises, escalade humaine.
Exemple de réponse
Un commit à deux phases entre trois services et trois bases signifie tenir des verrous à travers le réseau et un coordinateur qui peut tout bloquer s'il meurt, donc je ne le ferais pas. À la place, le flux devient une saga. Chaque service fait sa propre transaction locale et émet un événement, et chaque étape a une compensation définie : si l'expédition ne peut pas allouer, on libère la réservation de stock et on rembourse ou on annule le paiement. L'important, c'est que la compensation est une action métier, pas une annulation technique ; un remboursement laisse une trace visible et c'est correct. Pour tout ce qui dépasse environ trois étapes, j'utilise un orchestrateur plutôt qu'une chorégraphie pure, parce qu'en chorégraphie le flux réel n'existe nulle part et personne ne peut dire où une commande est bloquée. Un orchestrateur me donne une seule machine à états, des délais par étape et un statut interrogeable. Chaque étape est idempotente et rejouée avec backoff, et tout ce qui épuise ses reprises atterrit dans une file d'exploitation avec l'identifiant de commande, parce que certains échecs ont vraiment besoin d'une personne.
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
- Que faites-vous quand l'action de compensation échoue elle-même ?
- Comment montreriez-vous à un client l'état d'une commande en cours ?
- Quand fusionneriez-vous deux services plutôt que de faire tourner une saga entre eux ?
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