dbos-inc/dbos-transact-ts
Database-Backed Durable TypeScript Workflows
解决的问题
DBOS 通过提供持久化的工作流和队列,简化了可靠应用程序的创建。在处理故障(如支付处理期间的服务器崩溃或长时间运行的数据管道中断)时,无需复杂的状态管理、手动恢复逻辑或重量级的外部编排服务。
工作原理
DBOS 是一个轻量级库,使用 Postgres 数据库来检查点程序状态。开发者将普通的 TypeScript 函数标注为「工作流」和「步骤」;如果程序失败,DBOS 会自动从 Postgres 中存储的最后一个已完成步骤恢复执行。它还提供基于 Postgres 的后台任务队列、事件处理、调度和通知等原语,无需额外基础设施。
适用人群
专为需要可靠处理故障的服务开发者设计,例如支付系统、容错数据管道,或依赖不可靠和非确定性 API 的 AI 代理。
主要亮点
- 持久化工作流:故障后自动从最后一个完成的步骤恢复执行。
- 持久化队列:仅使用 Postgres 实现具有流量控制、速率限制和去重功能的后台任务管理。
- 程序化管理:可通过 DBOS 客户端查询、暂停、恢复或分叉失败的工作流。
- 精确一次处理:使用幂等性密钥确保事件(如 Webhook 或 Kafka 消息)仅触发工作流一次。
- 持久化调度:支持基于 cron 的调度和长期「持久睡眠」,重启后仍能保持状态。
相关
- 项目
- 项目
- 项目
- 项目
- 项目