Qu'est-ce que Modèle Saga
Transactions distribuées via des séquences d'événements
Modèle Saga est un patron pour gérer les transactions distribuées à travers une séquence de transactions locales avec des actions compensatoires en cas d'échecs.
Le Problème
- Les microservices ont leurs propres bases de données
- Les transactions ACID classiques sont impossibles
- La cohérence entre les services est nécessaire
Types de Saga
- Chorégraphie — les services échangent des événements
- Orchestration — un coordinateur central gère
Chorégraphie
- Les services s'abonnent aux événements des autres
- Chaque service publie son résultat
- Pas de point de défaillance unique
- Plus difficile de suivre l'état
Orchestration
- Le coordinateur Saga gère le flux
- Appelle les services séquentiellement
- Plus facile à suivre et déboguer
- Risque de point de défaillance unique
Transactions Compensatoires
- Annuler les étapes déjà terminées
- Doivent être idempotentes
- Annulation sémantique (pas rollback)
- Exemple : rembourser le paiement au lieu d'annuler