- „Ein in TypeScript geschriebenes dauerhaftes (durable), wiederaufnehmbares (resumable) Workflow-Framework“
- Bietet eine Workflow-Engine, die verschiedene Services und APIs verbindet, um komplexe Arbeitsabläufe zu automatisieren
- Eine modulare Open-Source-Plattform, die entwickelt wurde, um Probleme bei Workflow-Automatisierung und Integration zu lösen
- Selbst wenn ein Server ausfällt oder ein Deployment stattfindet, wird der Zustand in Postgres gespeichert, sodass die Ausführung exakt ab dem letzten Schritt fortgesetzt werden kann
- Da jedes
step.run({ name }, fn) nur einmal ausgeführt wird und das Ergebnis memoisert wird, werden bei einem Neustart nach einem Crash Nebenwirkungen wie Kartenzahlungen oder E-Mail-Versand nicht doppelt ausgeführt, sondern die zwischengespeicherten Ergebnisse wiederverwendet
- Ohne dedizierten Server basiert die Architektur auf Worker-Prozessen (
ow.newWorker({ concurrency })), die ausstehende Runs aus der DB pollen und ausführen. Dadurch lassen sich mehrere Worker für Hochverfügbarkeit und Scale-out starten, und lange Sleep-Phasen wie step.sleep("id", "1h") belegen keinen Worker-Slot
- Über Workflow-Input/Output-Generics, Versionsfelder (
version: "v2"), run().result(), handle.cancel() usw. ist das System so konzipiert, dass typsichere Definitionen, Versionsverwaltung, Ergebnisabfrage und Abbruch vollständig auf Code-Ebene behandelt werden können
- Unterstützt über eine Plugin-Architektur die Erweiterung und Anpassung für externe Systeme
- Unterstützt Integrationen mit wichtigen SaaS- und Entwickler-Tools wie OpenAI, Slack, GitHub und Notion
- Der Fokus liegt derzeit auf dem PostgreSQL-Backend und grundlegenden Runtime-Funktionen (gleichzeitige Ausführung, Retry, parallele Schritte, Sleep, Versionsverwaltung, Cancel)
- Auf der Roadmap stehen unter anderem CLI, Dashboard, Idempotency Key, Rollback-/Kompensationsfunktionen, Signale (signals), OpenTelemetry, Redis-/SQLite-Backends sowie Go-/Python-SDKs
2 Kommentare
Vor Kurzem wurde GitHub - earendil-works/absurd: An experiment in durability https://share.google/PCjaLh3j46ayECI9b hier gepostet … das scheint ein Projekt mit demselben Konzept zu sein, aber wo ist es geblieben …
Erinnert ein wenig an Spring Batch.