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 ressources)
Ici nous nous concentrons sur l’explication théorique de son fonctionnement.
- Le service
médiateur
iateur reçoit une requête - Il effectue une requpete vers le service
CreditCardWaller
- Qui lui retourne une réponse pour signifier que la demande est enregistrée
- Le service
médiateur
envoie également une requête vers le serviceCustomerProfile
- Mais une erreur se produit
- Le service
médiateur
rollback donc la demande enregistrée en 3) pour revenir à un état stable - L’utilisateur est informé d’une erreur
Si à l’étape 5) nous aurions eu un succès de l’étape, alors les demandes enregistrées auraient été commit