- "TypeScript में लिखा गया durable, resumable workflow framework"
- विभिन्न services और APIs को जोड़कर जटिल कार्य-प्रवाहों को ऑटोमेट करने के लिए workflow engine प्रदान करता है
- workflow automation और integration समस्याओं को हल करने के लिए विकसित किया गया modular open source platform
- सर्वर बंद हो जाए या deployment हो, तब भी state को Postgres में सेव करके ठीक आख़िरी step से फिर से execution जारी किया जा सकता है
- क्योंकि हर
step.run({ name }, fn) सिर्फ एक बार execute होता है और उसका result memoize किया जाता है, इसलिए crash के बाद restart होने पर card payment या email sending जैसे side effects दोबारा execute नहीं होते और cached result दोबारा इस्तेमाल किया जाता है
- अलग dedicated server के बिना worker process (
ow.newWorker({ concurrency })) DB से pending runs को poll करके execute करता है, इसलिए कई workers चलाकर high availability और scale-out संभव है, और step.sleep("id", "1h") जैसी long-duration sleep भी worker slot को occupy नहीं करती
- workflow input/output generics, version field (
version: "v2"), run().result(), handle.cancel() आदि के माध्यम से type-safe definition, version management, result lookup, और cancellation को code level पर संभालने के लिए डिज़ाइन किया गया है
- plugin architecture के ज़रिए बाहरी systems के साथ extension और customization का समर्थन
- OpenAI, Slack, GitHub, Notion जैसे प्रमुख SaaS और development tools के साथ integration support
- फ़िलहाल PostgreSQL backend और basic runtime features (concurrency, retry, parallel step, sleep, version management, cancel) पर फ़ोकस
- आगे CLI, dashboard, idempotency key, rollback/compensation functions, signals, OpenTelemetry, Redis/SQLite backend, Go/Python SDK आदि roadmap में शामिल हैं
2 टिप्पणियां
कुछ समय पहले GitHub - earendil-works/absurd: An experiment in durability https://share.google/PCjaLh3j46ayECI9b यह पोस्ट किया गया था... यह उसी कॉन्सेप्ट का प्रोजेक्ट लगता है, लेकिन वह कहाँ गया?
यह
spring batchजैसा महसूस होता है।