永続実行エンジン:分散トランザクションからTemporalへ

2025-05-23

この記事では、永続実行エンジン(Temporalなど)の進化について、初期のデータベーストランザクション、分散トランザクション、フォールトトレラントなRPC/マイクロサービスアーキテクチャから考察します。著者はJimmy Bogardの「Six Little Lines of Fail」の例を分析し、トランザクションのロールバックやリトライメカニズムなど、サービス間での関数呼び出し処理における課題を浮き彫りにしています。分散トランザクション(2フェーズコミットなど)の限界についても検討し、JSR-95(アクティビティサービス)やWebサービス標準(WS-AtomicTransactionなど)におけるJava界での試みについて考察し、最終的にそれらの限定的な採用を指摘しています。さらに、近年台頭してきたマイクロサービスアーキテクチャとそれに対応するフォールトトレランスメカニズム、イベントソーシング、オーケストレーション、コレオグラフィについても分析しています。最後に、Temporal、Restate、DBOSなどの最新の永続実行エンジンの違いを比較し、動作モード、データ保存方法、サーバーレスアーキテクチャとの統合などを解説し、分散システムにおける信頼性問題解決における重要性を強調しています。

開発