/pattern/workflow-dag/

04 · ProductionRuntime ArchitectureDurable WorkflowDAG OrchestrationResumable Workflow

Workflow DAG.
Ein Graph, der gezeichnet werden kann.

Workflows werden als persistente Ausführungsgraphen mit Fortsetzbarkeit, Wiederholungen und Zustandshistorie betrieben.

In der PraxisEine Dokumentenverarbeitungs-Pipeline führt OCR, Klassifizierung und Archivierung als Knoten in einem ausfallsicheren Graphen aus und wiederholt nach einem vorübergehenden Storage-Fehler nur den fehlgeschlagenen Knoten.

Wann man dazu greift

  • Läufe lange dauern oder fehlschlagen können.
  • Zustände und Wiederholungen robust verwaltet werden müssen.
  • Produktion Nachverfolgbarkeit erfordert.

Wann es nach hinten losgeht

  • Aufgaben kurz und zustandslos sind.
  • Persistenz unnötigen Betriebsaufwand erzeugt.
  • Das Graphmodell nicht zum Ausführungsablauf passt.

Die Abwägung

Produktionsrobustheit wird auf Kosten von Infrastruktur- und Modellierungsaufwand erreicht.

Die Wirkung

Was es tatsächlich tut.

Aufgaben werden als ausfallsicherer gerichteter Graph ausgeführt.

starttasktaskend
Fallstricke

Zwei Wege, wie dieses Pattern Probleme verursachen kann.

Versteckte Zyklen im DAG

Eine bedingte Kante erzeugt einen impliziten Zyklus, den der DAG-Validator übersieht. Der Workflow läuft zur Laufzeit endlos.

Lösung · Zur Build-Zeit eine statische Zyklusprüfung ausführen. Jeden Graphen ablehnen, der eine Rückkante enthält, sofern diese nicht explizit als Schleife deklariert ist.

Zu statische DAGs pressen jedes Problem in Pipeline-Form

Jede neue Anforderung wird in die bestehende DAG-Form gepresst. Der Graph wird zum verworrenen Geflecht aus bedingten Hacks.

Lösung · DAG-Topologie vierteljährlich neu bewerten. Wenn bedingte Kanten mehr als 30 % aller Kanten ausmachen, Zerlegung in kleinere Graphen erwägen.

Framework-Unterstützung

Wo Workflow DAG nativ ist.

LangGraphausfallsichere Graph-RuntimeNativ
AWS StrandsAWS Strands WorkflowNativ
Google ADKWorkflow-GraphenNativ
Microsoft Agent Frameworkausfallsichere WorkflowsNativ
CrewAICrewAI FlowsNativ

Suche

Patterns, Frameworks und Seiten durchsuchen.