Glossar   /   Systemintegration

Saga

Eine Saga organisiert einen verteilten Geschäftsablauf als einzelne lokale Schritte mit vorgesehenen fachlichen Ausgleichsaktionen.

Auch bekannt als: Saga Pattern

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.

Das könnte Sie auch interessieren

Passend zum Thema

Individuelle Softwareentwicklung Störungsverhalten und Wiederanlauf bei der Anwendungsentwicklung berücksichtigen.

Quellen und weiterführende Informationen

AWS: Saga Orchestration Pattern
← Zurück zu allen Glossarbegriffen

Den Umgang mit Störungen mitplanen

Ein wichtiger Ablauf hängt von weiteren Diensten ab? Klären Sie zulässige Einschränkungen, offene Aufgaben und den geregelten Wiederanlauf nach einer Unterbrechung.

Kontakt aufnehmen