dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

何を解決するか

DBOS Transact は、複雑な状態管理、外部タスクキュー、または重いオーケストレーションサーバーの必要性を排除することで、信頼性の高い、障害に強いアプリケーションの構築を簡素化します。開発者は、支払い処理、データパイプライン、AIエージェント操作などの長時間実行プロセスが、サーバーのクラッシュやAPIの障害後に、最初から再開するのではなく、最後に完了したステップから正確に再開できることを保証できます。

動作方法

DBOS は、軽量な Python ライブラリであり、Postgres データベースを使ってプログラムの状態をチェックポイントに記録します。通常の関数に @DBOS.workflow() および @DBOS.step() とアノテーションを付けることで、ライブラリは自動的に進捗を Postgres に記録します。障害が発生した場合、DBOS はこれらのチェックポイントを使用して自動的に復旧し、最後に完了したステップからワークフローを再開します。

対象ユーザー

Postgres を既に使用している、または Temporal や Airflow のような専用オーケストレーターのインフラストラクチャのオーバーヘッドを避けたい開発者向けに設計されています。

特徴

  • 耐久性のあるワークフロー: クラッシュ後の実行再開のために、状態を自動的にチェックポイントに保存。
  • 耐久性のあるキュー: Postgres をバックエンドに持つバックグラウンドタスク管理で、フロー制御、レート制限、重複排除をサポート。
  • プログラムによる管理: ワークフローは Postgres の行として保存され、クライアント経由で照会、一時停止、再開、失敗した実行のフォークが可能。
  • 正確に一度だけの処理: idempotency キーの組み込みサポートにより、Webhook や Kafka メッセージなどのイベントが正確に一度だけ処理されるよう保証。
  • 耐久性のあるスケジューリング: cron 形式のスケジューリングと、再起動後も生存する長期の耐久性のあるスリープ(数日〜数週間)をサポート。

関連

  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト
  • プロジェクト