dbos-inc/dbos-transact-py

Database-Backed Durable Python Workflows

What it solves

DBOSは、複雑な状態管理、外部オーケストレーター、または個別のタスクキューシステムを必要とせずに、信頼性が高く、フォールトトレラントなアプリケーションの作成を簡素化します。これにより、開発者は、決済サービス、データパイプライン、またはAIエージェントなどの長時間実行されるプロセスが、最初からやり直すことなく、クラッシュや中断からシームレスに回復できるようにします。

How it works

DBOSは、Postgresデータベースを使用してプログラムの状態をチェックポイント化する軽量なライブラリです。通常のPython関数を @DBOS.workflow() および @DBOS.step() としてアノテーションすることで、ライブラリはPostgresに進行状況を自動的に記録します。失敗が発生した場合、DBOSは再起動時に最後に完了したステップからワークフローを再開します。この耐久性を、キュー、スケジューリング、およびイベント処理を含む他のプリミティブにも拡張し、これらはすべて同じPostgresインスタンスによってバックエンドとして提供されます。

Who it’s for

これは、失敗を確実に処理しなければならないアプリケーションを構築している開発者、特に、重量級のオーケストレーション・インフラストラクチャ(Temporalなど)を管理するオーバーヘッドを避けたい開発者、またはすでにスタック内でPostgresを使用している開発者のために設計されています。

Highlights

  • Durable Workflows: 失敗後に最後に完了したステップから再開するために、状態を自動的にチェックポイント化します。
  • Durable Queues: フロー制御、レート制限、および重複排除を備えた、Postgresをバックエンドとするバックグラウンドタスクの実行。
  • Programmatic Management: ワークフローはPostgresの行として保存されるため、開発者はスクリプトを介して、失敗した実行をクエリ、一時停止、再開、またはフォークさせることができます。
  • Exactly-Once Processing: WebhookやKafkaコンシューマーの冪等性キーをサポートし、イベントが正確に一度だけ処理されることを保証します。
  • Durable Scheduling: cron形式のスケジューリングと、再起動後も持続する耐久性のあるsleep関数が含まれています。
  • Durable Notifications: ワークフローが特定の通知を受け取るか、タイムアウトに達するまで一時停止することを可能にします。

関連

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