Was bedeutet Saga?
Zum Beispiel werden Ware reserviert und eine Zahlung angefragt. Scheitert ein späterer Schritt, kann die Reservierung durch einen neuen Schritt aufgehoben werden. Die Steuerung kann zentral oder über Ereignisse erfolgen.
Es gibt dabei keine automatische gemeinsame Alles-oder-nichts-Transaktion über alle Systeme. Zwischenstände können sichtbar sein. Auch die Ausgleichsschritte brauchen Überwachung und Regeln für eigene Fehler.
So sieht das in der Praxis aus
Beispiel: Nach einer gescheiterten Zahlungsfreigabe wird eine zuvor reservierte Warenmenge wieder freigegeben.
Häufige Fragen
Ist eine Saga eine globale ACID-Transaktion?
Nein. Die einzelnen Dienste führen lokale Transaktionen aus. Bereits abgeschlossene Schritte werden bei Bedarf fachlich ausgeglichen, statt automatisch gemeinsam technisch zurückgesetzt zu werden.
Was passiert, wenn eine Ausgleichsaktion ebenfalls scheitert?
Der offene Ausgleich wird erneut versucht oder gezielt manuell geklärt. Eine noch nicht aufgehobene Warenreservierung darf beispielsweise nicht als erfolgreich freigegeben gelten.
Wann ist eine Saga besonders relevant?
Wenn ein Geschäftsablauf mehrere getrennte Datenbestände oder Dienste verändert und keine gemeinsame Transaktion möglich ist. Ausgleichbare Schritte und klare Zuständigkeiten sind wichtige Voraussetzungen.
