Repolode
dbos-inc

dbos-inc/dbos-transact-py

Postgresに状態をチェックポイントとして保存し、プログラムに耐久性のあるワークフローとタスクキューを追加するPythonライブラリです。

代替できる製品:Temporal

スター
1,666
フォーク
116
未解決の Issue
8
最終コミット
一昨日

これは何?

DBOS Transactは、耐久性のあるワークフローを構築するためのオープンソースのPythonライブラリです。通常の関数にワークフローやステップとしてアノテーションを付けると、その進捗がPostgresにチェックポイントとして保存されます。プロセスがクラッシュしたり再起動したりしても、ワークフローは最初からやり直すのではなく、最後に完了したステップから再開します。

耐久性のあるキュー、スケジューリング、通知機能も備えており、いずれもPostgresを基盤としています。ワークフローからキューに登録したタスクは、処理が中断されても確実に完了し、結果が呼び出し元に返されます。キューでは、並行実行数、レート制限、タイムアウト、重複排除、優先順位を設定できます。Cronベースのスケジュールや耐久性のあるsleepを使えば、ワークフローを数日から数週間待機させることもできます。

別途オーケストレーター、メッセージブローカー、キューイングサービスを用意する必要はなく、必要なインフラはPostgresデータベースだけです。ワークフローはPostgresの行として保存されるため、クライアントAPIを通じて検索、一時停止、再開したり、特定のステップから分岐させたりできます。

主な機能

  • 01ワークフローとステップの状態をPostgresにチェックポイントとして保存し、障害後も処理を再開できます。
  • 02並行実行数、レート制限、タイムアウト、重複排除、優先順位に対応した耐久性のあるタスクキュー。
  • 03再起動後も維持されるCronベースのスケジューリングと耐久性のあるsleep。
  • 04メッセージが届くまでワークフローを一時停止できる、耐久性のある通知とイベント。
  • 05ワークフローの検索、一時停止、再開、分岐を行えるプログラム用クライアント。

ユースケース

  • 処理の途中でサーバーがクラッシュしても完了させる必要がある、決済や注文処理。
  • 最初からやり直すのではなく、チェックポイントから再開する長時間実行のデータパイプライン。
  • 不安定または非決定的なAPIを呼び出すAIエージェントの運用。
  • バックグラウンドでWebhookやKafkaメッセージを厳密に一度だけ処理する用途。

クイックスタート

  1. 1

    クイックスタートガイドに従ってライブラリをインストールし、Postgresデータベースに接続します

  2. 2

    関数に @DBOS.workflow() と @DBOS.step() を付けて、耐久性を持たせます

使う前に知っておきたいこと

  • ワークフローの状態を保存するために、Postgresデータベースが必要です。
  • Python専用のライブラリのため、他の言語には対応していません。

収録されている特集

トピック

よくある質問

dbos-transact-py とは?
Postgresに状態をチェックポイントとして保存し、プログラムに耐久性のあるワークフローとタスクキューを追加するPythonライブラリです。 DBOS Transactは、耐久性のあるワークフローを構築するためのオープンソースのPythonライブラリです。通常の関数にワークフローやステップとしてアノテーションを付けると、その進捗がPostgresにチェックポイントとして保存されます。プロセスがクラッシュしたり再起動したりしても、ワークフローは最初からやり直すのではなく、最後に完了したステップから再開します。
dbos-transact-py は無料で使えますか?ライセンスは?
dbos-transact-py は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
dbos-transact-py は今もメンテナンスされていますか?
活発にメンテナンス中。dbos-transact-py の最終コミットは 2026年11月4日 です。
dbos-transact-py は何に使えますか?
処理の途中でサーバーがクラッシュしても完了させる必要がある、決済や注文処理。 最初からやり直すのではなく、チェックポイントから再開する長時間実行のデータパイプライン。 不安定または非決定的なAPIを呼び出すAIエージェントの運用。 バックグラウンドでWebhookやKafkaメッセージを厳密に一度だけ処理する用途。
dbos-transact-py のインストール方法は?
クイックスタートガイドに従ってライブラリをインストールし、Postgresデータベースに接続します 関数に @DBOS.workflow() と @DBOS.step() を付けて、耐久性を持たせます
dbos-transact-py はどこで入手できますか?
ソースコードとインストール手順は GitHub にあります:https://github.com/dbos-inc/dbos-transact-py

概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。

関連プロジェクト