dbos-inc/dbos-transact-ts
Database-Backed Durable TypeScript Workflows
解決的問題
DBOS Transact 提供了一種無需依賴獨立、重型編排伺服器,即可讓 TypeScript 程式具備可靠性和容錯能力的方法。它解決了應用程式在遭遇伺服器崩潰或長時間執行流程中斷時,管理複雜狀態與恢復邏輯的問題,例如支付服務或資料管道。
工作原理
DBOS 使用 Postgres 資料庫來檢查點(checkpoint)程式的狀態。透過將普通函數註冊為「工作流程」和「步驟」,開發者可確保程式失敗後,重啟時能自動從上一個完成的步驟繼續執行。它透過在函式庫內部直接實作持久化邏輯,消除了對外部任務佇列或編排器的需求。
適用對象
需要高可靠性的應用開發者,例如管理金融交易、資料管道,或依賴非決定性或不可靠外部 API 的 AI 代理。
特色亮點
- 持久化工作流程:程式失敗後,自動從 Postgres 中的最後一個檢查點恢復執行。
- 持久化佇列:基於 Postgres 的背景任務執行,支援流量控制、限速和去重。
- 程式化管理:可透過 Postgres 表直接查詢、暫停、恢復或分叉失敗的工作流程。
- 精確一次處理:內建冪等性金鑰支援,確保事件僅被處理一次。
- 持久化排程:支援基於 cron 的排程和長期「持久化休眠」,重啟後仍能保持。
- 持久化通知:傳送和接收通知以暫停或恢復工作流程時,保證精確一次語意。
相關
- 專案
- 專案
- 專案
- 專案
- 專案