【デュラブルエクセキューション】

Durable Execution とは?

💡 セーブポイント付きのゲームみたいに、やられても続きから再開できる
📌 このページのポイント
通常の実行 vs Durable Execution 通常の実行 Step 1 Step 2 Step 3 ⚡クラッシュ → 最初からやり直し Step 1 Step 2 Step 3 Durable Execution Step 1 Step 2 Step 3 ⚡クラッシュ ✅ 状態を永続化済み → 途中から再開! Step 3 Step 4 完了
通常の実行とDurable Executionの違い
ひよこ ひよこ

Durable Executionって、普通のプログラム実行と何が違うの?

ペンギン先生 ペンギン先生

普通のプログラムプロセスが落ちたらメモリ上の状態が全部消えるよね。Durable Executionは実行の各ステップを自動で永続化するから、クラッシュしても「あ、ここまでやったな」って続きから再開できるんだよ

ひよこ ひよこ

自分でデータベースに保存するのとは違うの?

ペンギン先生 ペンギン先生

自前だと「どの変数をいつ保存するか」「再開時にどこから処理を始めるか」を全部自分で書かないといけない。Durable Executionは普通にコードを書くだけで、裏側でフレームワークが勝手にやってくれるんだ

ひよこ ひよこ

どんな場面で使うと便利なの?

ペンギン先生 ペンギン先生

たとえば「ユーザー登録→メール送信→7日後にフォローアップ」みたいな長時間ワークフロー。途中でサーバー再起動されても、7日後のタイマーがちゃんと発火するんだよ

ひよこ ひよこ

イベントソーシングとは関係あるの?

ペンギン先生 ペンギン先生

いい質問だね!実はDurable Executionの内部実装はイベントソーシングに似ていて、実行の各ステップをイベントとして記録しているんだ。再開時はそのイベントログをリプレイして状態を復元するんだよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「Durable Execution」って出てきたら「落ちても途中から再開できるコード実行の仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Durable Execution」 = 耐久性のある実行
💬 Durableは「耐久性のある」という意味で、障害に耐えて実行を継続できることを表しているんだよ
← 用語集にもどる