Katalog
concept#Produkt#Delivery#Kompensation#Eventual Consistency

Saga-Pattern

Das Saga-Pattern koordiniert verteilte Transaktionen über mehrere Services hinweg, indem lokale Transaktionen mit Kompensationen einen konsistenten Gesamtprozess sichern.

Das Saga-Pattern ist ein Architekturkonzept für verteilte Systeme, in dem ein Geschäftsprozess als Sequenz lokaler Transaktionen modelliert wird.
Etabliert
Hoch

Klassifikation

  • Hoch
  • Technisch
  • Architektur
  • Fortgeschritten

Technischer Kontext

Event BusWorkflow-EngineDistributed Tracing

Prinzipien & Ziele

Lokale Transaktionen sind die BasiseinheitKompensationen müssen deterministisch seinEventual Consistency wird explizit akzeptiert
Umsetzung
Unternehmen

Use Cases & Szenarien

Kompromisse

  • Unvollständige Kompensationen erzeugen Inkonsistenzen
  • Doppelte Ausführung bei Retries
  • Verteilte Deadlocks durch fehlerhafte Choreografie
  • Idempotente Handler verwenden
  • Saga-Status persistent halten
  • End-to-end Observability aufbauen

I/O & Ressourcen

  • Geschäftsprozess-Schritte
  • Kompensationslogik
  • Service-Schnittstellen
  • Konsistenter Gesamtzustand
  • Kompensationsereignisse
  • Auditierbare Ablaufkette

Beschreibung

Das Saga-Pattern ist ein Architekturkonzept für verteilte Systeme, in dem ein Geschäftsprozess als Sequenz lokaler Transaktionen modelliert wird. Jede lokale Transaktion commitet eigenständig und löst bei Fehlern kompensierende Aktionen aus, um den Gesamtzustand zu korrigieren. Damit wird eventual consistency erreicht, ohne ein zentrales, blockierendes Two-Phase-Commit.

  • Kein globaler Lock oder 2PC nötig
  • Skalierbar über Service-Grenzen
  • Fehlerbehandlung über Kompensation möglich

  • Komplexe Fehler- und Kompensationslogik
  • Nur eventual consistency
  • Erhöhte Anforderungen an Observability

  • Kompensationsrate

    Anteil der Sagas, die kompensiert werden müssen.

  • Durchlaufzeit

    Zeit bis zum Abschluss einer Saga.

  • Fehlerquote pro Schritt

    Anteil fehlgeschlagener lokaler Transaktionen pro Schritt.

E‑Commerce Checkout

Zahlung, Lager und Versand werden als Saga‑Schritte behandelt, mit kompensierenden Aktionen bei Abbruch.

Buchungsplattform

Flug, Hotel und Mietwagen sind lokale Transaktionen, die bei Konflikten rückgängig gemacht werden.

Kontowechsel

Nutzerkonto, Abos und Berechtigungen werden schrittweise migriert und bei Fehlern kompensiert.

1

Prozess in lokale Transaktionen zerlegen

2

Kompensationspfade definieren

3

Orchestrierung oder Choreografie wählen

⚠️ Technische Schulden & Engpässe

  • Uneinheitliche Kompensationslogik
  • Manuelle Eingriffe in Saga-Fehler
  • Fehlende Wiederanlaufstrategien
KompensationsdesignObservabilityEvent-Flows
  • Saga für streng konsistente Finanzbuchungen
  • Kompensation ohne Idempotenz
  • Choreografie ohne klaren Eventvertrag
  • Vergessene Nebenwirkungen in Kompensation
  • Fehlende Zeitouts und Retries
  • Zu geringe Sichtbarkeit des Saga-Status
Domain-Driven DesignEvent-Driven ArchitekturResilienz-Patterns
Service-EntkopplungSkalierbarkeitResilienz gegen Teilausfälle
  • Strikte Compliance-Anforderungen
  • Service-Grenzen sind festgelegt
  • Limitierte Transaktionsfenster