dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

它解决了什么问题

DBOS 通过消除对复杂状态管理、外部编排器或独立任务队列系统的需要,简化了可靠、容错应用程序的创建。它使开发者能够确保长时间运行的进程——例如支付服务、数据管道或 AI 代理——在崩溃或中断后能够无缝恢复,而无需从头开始重启。

它如何工作

DBOS 是一个轻量级库,使用 Postgres 数据库来检查点程序的状态。通过将普通的 Python 函数标注为 @DBOS.workflow()@DBOS.step(),该库会自动将进度记录到 Postgres 中。如果发生故障,DBOS 在重启后会从上一个已完成的步骤继续执行工作流。它还将这种持久性扩展到其他原语,包括队列、调度和事件处理,所有这些都由同一个 Postgres 实例支持。

适合谁使用

它专为需要可靠处理故障的应用程序开发者设计,特别是那些希望避免管理重型编排基础设施(如 Temporal)的开销,或已经在其技术栈中使用 Postgres 的开发者。

主要特性

  • 持久化工作流:自动将状态检查点保存,以便在发生故障后从最后一个完成的步骤恢复。
  • 持久化队列:基于 Postgres 的后台任务执行,支持流量控制、速率限制和去重。
  • 程序化管理:工作流以 Postgres 行的形式存储,允许开发者通过脚本查询、暂停、恢复或分叉失败的执行。
  • 精确一次处理:支持 Webhook 和 Kafka 消费者使用幂等键,确保事件仅被处理一次。
  • 持久化调度:包含类似 cron 的调度和持久化睡眠函数,即使重启也能保持状态。
  • 持久化通知:允许工作流暂停,直到收到特定通知或超时时间到达。

相关

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