Module 3 · Concevoir pour l'échecEnviron 2 min
Les transactions en plusieurs étapes
Préparer une commande, chez Nadia, touche quatre systèmes : réserver le stock, émettre la facture, programmer l’enlèvement, confirmer au client. Aucune base de données ne couvre les quatre : si l’étape 3 échoue, les étapes 1 et 2 sont déjà faites. Le schéma saga prévoit, pour chaque étape, une action de compensation qui l’annule proprement, exécutée dans l’ordre inverse.
Une compensation n’efface pas l’histoire : une facture émise s’annule par un avoir, pas par une suppression. Make propose un gestionnaire d’erreur Rollback, mais il n’annule que les modules qui gèrent les transactions ; un e-mail ou un message envoyé reste envoyé. Les compensations explicites restent votre vrai filet. Écrivez chacune en même temps que l’étape qu’elle annule, jamais après l’incident.