microsoft/pg_durable

PostgreSQL in-database durable execution

何を解決するか

pg_durable は SQL 関数の耐久性実行を提供し、cronジョブ、ワーカー、キュー、ステータステーブルの組み合わせを使って複雑なバックグラウンド作業を手動で管理する必要をなくします。長時間実行されるワークフローがデータベースのクラッシュ、再起動、または個々のステップの失敗に耐えられるように、進捗をチェックポイント化することで、最後に成功したステップから再開できるようになります。

動作方法

PostgreSQL拡張として実装されており、オーケストレーションランタイムをデータベース内に直接持ち込みます。ユーザーは ~>|=> などのカスタムDSL演算子を使って、SQLステップのグラフとしてワークフローを定義します。バックグラウンドワーカーがオーケストレーションランタイム(theroxide および duroxide-pg ライブラリによって駆動)をホストし、これらのステップを実行し、各インスタンスの状態をPostgreSQLテーブルに永続化します。これにより、Redis や Temporal などの外部インフラストラクチャを必要とせずに、進捗の追跡、リトライ処理、並列実行の管理が可能になります。

対象ユーザー

  • バックエンドおよびデータエンジニア:ワークフロー論理をデータと共に保持したい人
  • DBA および SRE:監査可能でシステム再起動に耐えうるランブックを自動化したい人
  • AI やデータパイプラインを構築するチーム(例:ベクトル埋め込みパイプライン):行またはバッチ単位で耐久性のある実行が必要な人

特徴

  • インフラストラクチャゼロ:外部依存なしにPostgreSQL拡張として完全に動作
  • SQLネイティブ:SQLベースのDSLを使ってワークフローを定義・管理
  • ロボットのような耐性:状態がPostgreSQLに永続化され、クラッシュやフェイルオーバーに耐えられる
  • データベース意識:スケジューリング、条件、並列実行(ファンアウト/ジョイン)のための第一級のプリミティブを備える
  • 統合された可視性:運用状態は標準のPostgreSQLテーブルで追跡可能

関連

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