dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

它解決的問題

DBOS 透過消除複雜的狀態管理、外部編排器或獨立的任務佇列系統的需求,簡化了可靠且具容錯能力應用程式的建立。它讓開發者能確保長時間執行的流程——例如支付服務、資料流程或 AI 代理——在發生崩潰或中斷時,能無縫恢復,而無需從頭開始重新執行。

它如何運作

DBOS 是一個輕量級程式庫,使用 Postgres 資料庫來檢查點(checkpoint)程式的狀態。透過將普通的 Python 函數標記為 @DBOS.workflow()@DBOS.step(),該程式庫會自動將進度記錄至 Postgres。若發生失敗,DBOS 在重新啟動時會從最後完成的步驟繼續執行工作流程。它將這種耐用性延伸至其他原語,包括佇列、排程和事件處理,全部由同一個 Postgres 實例支援。

適用對象

此工具專為需要可靠處理失敗的開發者設計,特別是那些希望避免管理重型編排基礎設施(如 Temporal)的開銷,或已在其技術堆疊中使用 Postgres 的開發者。

主要特色

  • 耐用的工作流程:自動將狀態檢查點儲存,以便在失敗後從最後完成的步驟恢復。
  • 耐用的佇列:基於 Postgres 的背景任務執行,具備流量控制、速率限制和去重功能。
  • 程式化管理:工作流程以 Postgres 資料列的形式儲存,讓開發者能透過腳本查詢、暫停、繼續或分叉失敗的執行。
  • 精確一次處理:支援 Webhook 和 Kafka 消費者使用 idempotency key,確保事件僅被處理一次。
  • 耐用的排程:內建類似 cron 的排程功能,以及可在重啟後持續的耐用睡眠函數。
  • 耐用的通知:允許工作流程暫停,直到收到特定通知或逾時為止。

「DBOS 讓我們能輕鬆地建立可恢復的長時間執行流程,而無需複雜的狀態管理。」— @dbosdev

「在 Postgres 中儲存工作流程狀態,讓我們能隨時查詢和調試執行過程。」— @dbosdev

「我們的 AI 代理現在能可靠地處理失敗,並從最後一步恢復,這極大地提升了系統的穩定性。」— @dbosdev

相關

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