SAGA
Ressources
Le patron SAGA permet de gérer les transactions en utilisant une séquence de transactions locales de microservices. Chaque microservice possède sa propre base de données et peut gérer les transactions locales de manière atomique avec une cohérence stricte.
Ce patron peut être implémenté à la fois avec une Choreography-based et avec une Orchestration-based (voir les ressources)
Ici nous nous concentrons sur l'explication théorique de son fonctionnement.
- Le service
médiateurreçoit une requête - Il effectue une requête vers le service
CreditCardWallet - Qui lui retourne une réponse pour signifier que la demande est enregistrée
- Le service
médiateurenvoie également une requête vers le serviceCustomerProfile - Mais une erreur se produit
- Le service
médiateurrollback donc la demande enregistrée en 3) pour revenir à un état stable - L'utilisateur est informé d'une erreur
Si à l'étape 5) nous avions eu un succès de l'étape, alors les demandes enregistrées auraient été validées (commit)
