Aller au contenu principal

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 les ressources)

Ici nous nous concentrons sur l'explication théorique de son fonctionnement.

  1. Le service médiateur reçoit une requête
  2. Il effectue une requête vers le service CreditCardWallet
  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 avions eu un succès de l'étape, alors les demandes enregistrées auraient été validées (commit)

SAGA

X

Graph View