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 表格追蹤執行狀態

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案