Un saga gère une transaction métier qui s'étend sur plusieurs services comme une séquence de transactions locales. Si une étape échoue, le saga exécute des transactions de compensation pour annuler les étapes précédentes — il n'y a pas de rollback distribué.
Pourquoi pas une transaction distribuée ?
Le commit à deux phases entre services est lent, verrouille les ressources et crée un couplage. Les sagas offrent une cohérence éventuelle sans verrous distribués.
