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