PostgreSQLで耐久性ワークフローを構築する技術
原題: Building durable workflows on Postgres
なぜ重要か
データベース中心の分散システム設計により、従来の複雑なオーケストレーション層を排除し、システムの簡素化と効率向上を実現する技術革新
DBOSが外部オーケストレーションではなくPostgreSQLを直接活用した耐久性ワークフローシステムを提案。従来のTemporal、Airflow、AWS Step Functionsが採用する中央オーケストレーターモデルは複雑すぎると主張し、データベース自体をオーケストレーターとして利用する手法を紹介した。
耐久性ワークフローは信頼性の高いプログラムを構築するためのツールで、プログラムの実行中に進捗を定期的にデータベースにチェックポイントとして保存する仕組みである。プログラムがクラッシュしても最後のチェックポイントから復旧できる。現在主流の外部オーケストレーション方式では、TemporalやAirflow、AWS Step Functionsのように中央オーケストレーターがワークフローの実行を調整し、ワーカーに処理を分散する。しかしDBOSは、この中央オーケストレーターモデルは根本的に複雑すぎると指摘している。耐久性ワークフローの核心がデータベースへの状態チェックポイントにあるなら、独立したオーケストレーターサーバーは不要で、データベース自体をオーケストレーターとして使用すべきだと主張する。PostgreSQL基盤のシステムでは、アプリケーションサーバーが中央オーケストレーターを経由せず直接PostgreSQLと通信してワークフローを実行する。クライアントがワークフローテーブルにエントリを作成し、サーバーがポーリングして処理を取得、各ステップの出力をPostgreSQLにチェックポイントとして保存する仕組みとなる。