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 表追踪运行状态
相关
- 项目
- 项目
- 项目
- 项目
- 项目