microsoft/pg_durable

PostgreSQL in-database durable execution

解决的问题

pg_durable 为 SQL 函数提供持久化执行能力,消除了开发者需要手动管理复杂后台任务的需要,这些任务通常依赖于 cron 作业、工作进程、消息队列和状态表的组合。它通过检查点机制保存执行进度,确保长时间运行的工作流在数据库崩溃、重启或单个步骤失败后仍能存活,从而可以从上一个成功步骤恢复执行,而不是从头开始。

工作原理

作为 PostgreSQL 扩展实现,它将编排运行时直接引入数据库内部。用户使用自定义 DSL(包含 ~>|=> 等操作符)定义工作流为 SQL 步骤的图结构。一个后台工作进程托管编排运行时(由 theroxide 和 duroxide-pg 库驱动),执行这些步骤并将每个实例的状态持久化到 PostgreSQL 表中。这使得系统能够在无需外部基础设施(如 Redis 或 Temporal)的情况下,追踪执行进度、处理重试并管理并行执行。

适用人群

  • 后端和数据工程师:希望将工作流逻辑与数据一同存放的人
  • DBA 和 SRE:需要可审计且能抵御系统重启的自动化运行手册的人
  • 构建 AI 或数据管道的团队(例如向量嵌入管道):需要按行或批次实现持久化执行的人

核心亮点

  • 零基础设施:完全作为 PostgreSQL 扩展运行,无外部依赖
  • SQL 原生:使用基于 SQL 的 DSL 定义和管理工作流
  • 机器人级韧性:状态持久化到 PostgreSQL,确保在崩溃和故障转移中存活
  • 数据库感知:原生支持调度、条件判断和并行执行(扇出/合并)
  • 集成可见性:通过标准 PostgreSQL 表追踪运行状态

相关

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