- "Framework de workflows durável (durable) e retomável (resumable) escrito em TypeScript"
- Fornece um motor de workflow para automatizar fluxos de trabalho complexos conectando diversos serviços e APIs
- Plataforma open source modular desenvolvida para resolver problemas de automação e integração de workflows
- Mesmo que o servidor caia ou haja um deploy, o estado é salvo no Postgres, permitindo retomar a execução exatamente a partir da última etapa
- Como cada
step.run({ name }, fn) é executado apenas uma vez e tem o resultado memoizado, em reinicializações após falhas efeitos colaterais como cobrança no cartão ou envio de e-mail não são executados em duplicidade, reutilizando o resultado em cache
- Sem a necessidade de um servidor dedicado separado, a arquitetura usa processos worker (
ow.newWorker({ concurrency })) que fazem polling de execuções pendentes no banco de dados e as executam; assim, é possível subir vários workers para alta disponibilidade e scale-out, e até sleeps longos como step.sleep("id", "1h") não ocupam slots de worker
- Com genéricos de entrada/saída de workflow, campo de versão (
version: "v2"), run().result(), handle.cancel() etc., foi projetado para permitir tratar em nível de código definição type-safe, versionamento, consulta de resultado e cancelamento
- Suporta expansão e customização com sistemas externos por meio de uma arquitetura de plugins
- Suporta integrações com os principais SaaS e ferramentas de desenvolvimento, como OpenAI, Slack, GitHub e Notion
- No momento, o foco está no backend PostgreSQL e nas funcionalidades básicas de runtime (execução concorrente, retry, steps paralelos, sleep, versionamento, cancelamento)
- Depois, o roadmap inclui CLI, dashboard, idempotency key, funções de rollback/compensação, sinais (signals), OpenTelemetry, backends Redis/SQLite e SDKs para Go/Python
2 comentários
Há pouco tempo tinha aparecido isto: GitHub - earendil-works/absurd: An experiment in durability https://share.google/PCjaLh3j46ayECI9b ... parece ser um projeto com o mesmo conceito, mas para onde foi?
Parece ter uma pegada parecida com o Spring Batch.