Wann man dazu greift
- Läufe lange dauern oder fehlschlagen können.
- Zustände und Wiederholungen robust verwaltet werden müssen.
- Produktion Nachverfolgbarkeit erfordert.
/pattern/workflow-dag/
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
Wann es nach hinten losgeht
Die Abwägung
Produktionsrobustheit wird auf Kosten von Infrastruktur- und Modellierungsaufwand erreicht.
Aufgaben werden als ausfallsicherer gerichteter Graph ausgeführt.
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.
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.
Patterns, Frameworks und Seiten durchsuchen.