Wie koordiniert ein Saga-Muster umkehrbare KI-Aktionen zu Hause?

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Eine Saga koordiniert reversible KI-Aktionen zu Hause, indem sie einen Workflow in geordnete Schritte aufteilt und Ausgleichsaktionen ausführt, wenn ein späterer Schritt fehlschlägt.

Das ist nützlich, wenn ein Agent mehrere unabhängige Dienste nutzt, die keine gemeinsame Transaktion unterstützen. Der Workflow zeichnet den Fortschritt auf, erkennt die Fehlerstelle und macht die Schritte, die rückgängig gemacht werden können, gezielt rückgängig.

Eine Saga teilt eine Aktion zu Hause in mehrere lokale Schritte auf

Eine Saga koordiniert einen Workflow über unabhängige Systeme hinweg, indem sie jeden Schritt als lokale Transaktion oder Seiteneffekt behandelt. Die gesamte Operation ist erst erfolgreich, wenn die erforderlichen Schritte abgeschlossen sind.

Das Saga-Muster ist als Abfolge lokaler Transaktionen definiert, die über Nachrichten oder Orchestrierung koordiniert werden. Es ist nützlich, wenn eine globale ACID-Transaktion nicht alle Beteiligten umschließen kann. Das Saga-Muster zerlegt eine größere Transaktion in eine Folge lokaler Transaktionen, was sich gut auf mehrstufige Aktionen zu Hause übertragen lässt, wie in der Übersicht zum Saga-Muster beschrieben.

Ein KI-Workflow zu Hause könnte einen Mediendienst stoppen, eine Mediensammlung verschieben, einen Mount aktualisieren, Metadaten neu einlesen und den Dienst neu starten.

Jede Komponente führt ihre lokale Transaktion aus, obwohl der gesamte Workflow nicht atomar ist.

Jeder reversible Schritt definiert eine Ausgleichsaktion

Eine Saga setzt nicht jeden Dienst mit einem einzigen Datenbankbefehl zurück. Schritte, die rückgängig gemacht werden können, definieren Ausgleichsaktionen, die vorherige Arbeiten semantisch wiederherstellen oder ausgleichen.

Microservices.io erklärt, dass ein Fehler Ausgleichstransaktionen für zuvor abgeschlossene Schritte auslöst. Die Kompensation stellt die Konsistenz wieder her, anstatt die Historie zu löschen. Azure beschreibt Ausgleichsaktionen für reversible Saga-Schritte und unterstützt damit das in der Azure-Saga-Muster verwendete Kompensationsmodell.

MoveFile kann durch MoveFileBack ausgeglichen werden, und DisableShare durch EnableShare. Einige externe Aktionen haben möglicherweise kein perfektes Gegenstück und müssen entsprechend gekennzeichnet werden.

Ein Orchestrator kann die Vorwärts- und Rückwärtsreihenfolge festlegen

Bei einer orchestrierungsbasierten Saga kennt eine Workflow-Komponente die Abfolge, sendet Befehle, zeichnet Antworten auf und entscheidet, ob sie fortfährt oder mit der Kompensation beginnt.

Microservices.io zeigt, wie ein Saga-Orchestrator Schritte und Ausgleichsaktionen aufruft. Eine zentrale Zustandsmaschine lässt sich auf einem Heimserver oft leichter prüfen als ein Netz unabhängiger Reaktionen. Die Saga-Anleitung von Temporal zeigt, wie ein Orchestrator Ausgleichsaktionen registrieren und aufrufen kann, wenn ein späterer Schritt fehlschlägt. Das entspricht der Koordination in umgekehrter Reihenfolge im Temporal-Saga-Muster.

Wenn ein später Schritt fehlschlägt, werden Ausgleichsaktionen normalerweise in umgekehrter Abhängigkeitsreihenfolge ausgeführt.

Wenn ein Mount geändert wurde, nachdem Dateien verschoben wurden, sollte der Workflow den Mount wiederherstellen, bevor er die Daten zurückverschiebt.

-15% OFF

Choreografie verteilt die Koordination auf Ereignisse

Bei einer choreografiebasierten Saga reagiert jeder Beteiligte auf Ereignisse und gibt das nächste Ereignis aus. Dadurch entfällt ein zentraler Koordinator, aber die Workflow-Logik wird auf die Abonnenten verteilt.

Das Saga-Muster unterscheidet ausdrücklich zwischen Choreografie und Orchestrierung. Beide können Ausgleichsaktionen koordinieren, unterscheiden sich jedoch hinsichtlich der Beobachtbarkeit. AWS unterscheidet zwischen Orchestrierung und ereignisgesteuerter Choreografie und unterstützt damit die in der AWS-Saga-Orchestrierung beschriebene Abwägung bei der Koordination.

Für einen kleinen selbst gehosteten Workflow ist eine Orchestrierung oft leichter zu überprüfen. Choreografie kann dennoch für Systeme geeignet sein, in denen unabhängige Dienste bereits über einen Event-Bus kommunizieren.

Kompensation erfordert Idempotenz und eine stabile Aktionsidentität

Eine Ausgleichsaktion kann nach einem Timeout oder Absturz erneut versucht werden. Daher sollte sie sicher erneut ausführbar sein oder erkennen können, dass der Zielzustand bereits wiederhergestellt wurde.

Das Saga-Modell setzt explizite Semantik für lokale Transaktionen und Ausgleichstransaktionen voraus. Stabile Workflow- und Schritt-IDs helfen dabei, Wiederholungen von doppelten Ausführungen zu unterscheiden. Die Saga-Anleitung von IBM hebt lokale Transaktionen und kompensierendes Verhalten hervor und verdeutlicht, warum Wiederholungen und Ausgleichsaktionen stabile Identitäten und eine idempotente Ausführung benötigen, wie in den Implementierungshinweisen von IBM zu Sagas beschrieben.

Das steht in Verbindung mit den wiederholten Tool-Aufrufschleifen von Agenten bei ZimaSpace: Ein Wiederherstellungs-Workflow muss wissen, ob er sicher fortgesetzt wird oder einen Seiteneffekt wiederholt.

Eine Saga kann nicht jede Aktion wirklich reversibel machen

Einige Aktionen im Haushalt haben irreversible externe Folgen.

Eine zugestellte Nachricht, eine sicher gelöschte Datei oder ein Kauf bei einem Drittanbieter lässt sich nicht immer durch einen umgekehrten API-Aufruf rückgängig machen.

Sagas setzen auf Kompensation statt auf ein universelles verteiltes Rollback. Irreversible Schritte sollten daher spät angeordnet und sorgfältig abgesichert werden. Die Ausführungen von Red Hat zu Mustern für verteilte Transaktionen verdeutlichen, dass Kompensation eine Korrekturmaßnahme auf Geschäftsebene und kein universelles Rollback ist. Dies markiert die Grenze im Beitrag zu den Mustern für verteilte Transaktionen von Red Hat.

Die Strategie von ZimaSpace, bei Agenten zuerst schreibgeschützte Werkzeuge zu verwenden, bietet die sicherere Entwicklung von der Beobachtung hin zu Änderungen. Eine Saga koordiniert anschließend die Änderungen, die bewusst zugelassen wurden.

Tech- & KI-Zentrum

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.