SAGA

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.

  1. Le service médiateuriateur reçoit une requête
  2. Il effectue une requpete vers le service CreditCardWaller
  3. Qui lui retourne une réponse pour signifier que la demande est enregistrée
  4. Le service médiateur envoie également une requête vers le service CustomerProfile
  5. Mais une erreur se produit
  6. Le service médiateur rollback donc la demande enregistrée en 3) pour revenir à un état stable
  7. 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

SAGA SAGA