dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

解决的问题

DBOS Transact 通过消除对复杂状态管理、外部任务队列或重型编排服务器的需求,简化了可靠、容错应用程序的创建。它使开发者能够确保长时间运行的流程(如支付交易、数据管道或 AI 代理操作)在服务器崩溃或 API 失败后,能够从上次完成的步骤精确恢复,而不是从头开始重启。

工作原理

DBOS 是一个轻量级的 Python 库,使用 Postgres 数据库来记录程序的状态检查点。通过将普通函数标注为 @DBOS.workflow() 和 @DBOS.step(),该库会自动将进度记录到 Postgres 中。如果发生故障,DBOS 会利用这些检查点自动恢复并从最后一个完成的步骤继续执行工作流。

适用人群

专为那些需要可靠处理故障的应用程序开发者设计,特别是已经使用 Postgres 的开发者,或希望避免使用 Temporal 或 Airflow 等专用编排器所带来的基础设施开销的开发者。

主要亮点

  • 持久化工作流:自动将状态保存为检查点,以便在崩溃后恢复执行。
  • 持久化队列:基于 Postgres 的后台任务管理,支持流控、速率限制和去重。
  • 程序化管理:工作流以 Postgres 行的形式存储,允许开发者通过客户端查询、暂停、恢复或分叉失败的执行。
  • 精确一次处理:内置幂等性密钥支持,确保事件(如 Webhook 或 Kafka 消息)仅处理一次。
  • 持久化调度:支持 cron 风格调度和长期持久化休眠(数天或数周),即使重启也能保持状态。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目