Zum Inhalt springen
_CORE
KI & Agentensysteme Unternehmensinformationssysteme Cloud & Platform Engineering Datenplattform & Integration Sicherheit & Compliance QA, Testing & Observability IoT, Automatisierung & Robotik Mobile & Digitale Produkte Banken & Finanzen Versicherungen Öffentliche Verwaltung Verteidigung & Sicherheit Gesundheitswesen Energie & Versorgung Telko & Medien Industrie & Fertigung Logistik & E-Commerce Retail & Treueprogramme
Referenzen Technologien Blog Know-how Tools
Über uns Zusammenarbeit Karriere
CS EN DE
Lassen Sie uns sprechen

Saga Pattern -- verteilte Transaktionen ohne 2PC

27. 09. 2024 1 Min. Lesezeit advanced

Architektur Experte

Saga Pattern – verteilte Transaktionen ohne 2PC

SagaTransactionsMicroservices 3 min Lesezeit

Implementierung des Saga Patterns fuer Datenkonsistenz ueber Microservices hinweg. Choreografie vs. Orchestrierung.

Das Problem verteilter Transaktionen

Im Monolithen reicht eine DB-Transaktion. In Microservices hat jeder Dienst seine eigene DB – klassische Transaktionen funktionieren nicht. Saga ist eine Sequenz lokaler Transaktionen mit kompensierenden Aktionen.

Choreografie vs. Orchestrierung

Choreografie: Dienste kommunizieren ueber Events, kein zentraler Koordinator.

Orchestrierung: Ein zentraler Saga-Orchestrator steuert die Sequenz der Schritte.

class CreateOrderSaga {
    steps = [
        { action: 'order.create', compensate: 'order.cancel' },
        { action: 'payment.process', compensate: 'payment.refund' },
        { action: 'inventory.reserve', compensate: 'inventory.release' },
        { action: 'order.confirm', compensate: null }
    ];
    async execute(data) {
        const completed = [];
        for (const step of this.steps) {
            try {
                await this.invoke(step.action, data);
                completed.push(step);
            } catch (error) {
                for (const s of completed.reverse())
                    if (s.compensate) await this.invoke(s.compensate, data);
                throw error;
            }
        }
    }
}

Wann was verwenden

  • Choreografie – einfachere Sagas (2-4 Schritte)
  • Orchestrierung – komplexere Sagas (5+ Schritte)
  • Werkzeuge: Temporal, Camunda, AWS Step Functions

Zusammenfassung

Das Saga Pattern erfordert einen sorgfaeltigen Entwurf von Kompensationsaktionen und idempotenten Operationen. Fuer komplexe Workflows empfehlen wir die Orchestrierung mit Temporal.

Brauchen Sie Hilfe bei der Implementierung?

Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.

Kostenlose Beratung

Teilen:

CORE SYSTEMS Team

Wir bauen Kernsysteme und KI-Agenten, die den Betrieb am Laufen halten. 15 Jahre Erfahrung mit Enterprise-IT.