Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 ...
Search
y_taka_23
September 19, 2026
Technology
72
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
なぜ「決定性」が 決定的に重要なのか? Durable Execution 基盤の数理的理解 #serverlessjp / ServerlessDays Tokyo 2026
Serverless Days Tokyo 2026 で使用したスライドです。
y_taka_23
September 19, 2026
More Decks by y_taka_23
See All by y_taka_23
形式手法特論:Hyperproperty とモデル検査 #kernelvm / Kernel VM Study Tokyo 19th
ytaka23
1
1k
形式手法特論:公平性制約の位相的特徴づけ #kernelvm / Kernel VM Study Kansai 12th
ytaka23
1
1k
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
ytaka23
1
1.3k
形式手法特論:コンパイラの「正しさ」は証明できるか? #burikaigi / BuriKaigi 2026
ytaka23
17
8.4k
形式手法特論:CEGAR を用いたモデル検査の状態空間削減 #kernelvm / Kernel VM Study Hokuriku Part 8
ytaka23
3
930
形式手法特論:位相空間としての並行プログラミング #kernelvm / Kernel VM Study Tokyo 18th
ytaka23
3
2.5k
AWS と定理証明 〜ポリシー言語 Cedar 開発の舞台裏〜 #fp_matsuri / FP Matsuri 2025
ytaka23
12
6.7k
問 1:以下のコンパイラを証明せよ(予告編) #kernelvm / Kernel VM Study Kansai 11th
ytaka23
3
1.2k
AWS のポリシー言語 Cedar を活用した高速かつスケーラブルな認可技術の探求 #phperkaigi / PHPerKaigi 2025
ytaka23
15
6.1k
Other Decks in Technology
See All in Technology
iOSDC Japan 2026 day1 TrackC 10:50
feedtailor
1
160
白金鉱業Meetup Vol.25 アウトカムが二値のデータに対するCausal Impact
brainpadpr
0
210
20260912_スクラムにジェネラリストは必要か
ryugen04
0
420
AIによるクリエイティブ生成を行う上での試行錯誤
plaidtech
PRO
0
150
LTのテーマ どうきめてる?〜5つの型と私のやり方〜
yama3133
1
110
AI に書かせたその API、 “信頼” できますか?
nagix
0
110
30座EKS, 180次升級淬煉的EKS Upgrade Skill 的歷程
eric8230
0
160
日経電子版を支えていく Kasane Design System/fec_fukuoka
nikkei_engineer_recruiting
0
1.5k
2026-09-11 【Snowflake World Tour Tokyo 2026】Snowflakeを起点に、AI Agentが自律稼働し続ける未来へ / Driving AI Agents with Snowflake
civitaspo
0
540
空間オーディオで過去の 自分(ゴースト)と競うランニング 〜HealthKitのルートを足音に変える実装〜
nao_randd
0
220
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
610
Amazon Quick on DesktopがIAM Identity Centerで動かない理由
yukiogawa
0
190
Featured
See All Featured
Un-Boring Meetings
codingconduct
0
420
Believing is Seeing
oripsolob
1
220
A designer walks into a library…
pauljervisheath
211
25k
Prompt Engineering for Job Search
mfonobong
0
450
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.6k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
My Coaching Mixtape
mlcsv
0
310
Embracing the Ebb and Flow
colly
88
5.2k
Site-Speed That Sticks
csswizardry
13
1.5k
Scaling GitHub
holman
464
140k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Transcript
#serverlessjp チェシャ猫 (@y_taka_23) ServerlessDays Tokyo 2026 (19th Sep. 2026) なぜ「決定性」が
決定的に重要なのか? Durable Execution 基盤の数理的理解
本日のアジェンダ • お話しする内容 ◦ AWS Lambda Durable Functions の仕組みと性質 ◦
Durable Execution に対する 3 つのモデル ◦ 理論面から見た「決定性」の重要性 • 持ち帰ってほしい視点 ◦ 「どう使うべきか」を「なぜ正しいのか」から理解
例:決済処理 • 注文情報を DynamoDB に保持している • 外部の決済 API を叩く ◦
ただし決済が失敗することがある ◦ その場合は 1, 3, 7, 14 日後にリトライ • 決済できたら領収書を送信 ◦ 宛先はメールと SMS の 2 箇所
Durable Functions • AWS Lambda の新しいプログラミングモデル ◦ 2025 年 12
月に GA、東京リージョンもサポート • ワークフローをプログラミング言語で記述 ◦ リトライ・待機・分岐などをロジックと結合可能 ◦ 最大 1 年待機が可能で、待機中は課金も中断 • 本イベント Day2 にワークショップあり
自動リトライの単位を step で囲む ループや条件分岐 長時間の待機 並行処理の Fan-Out
wait 中は実際には 関数が起動していない (註:便宜上、1 日を 1 秒に短縮)
もし実行中にクラッシュしたら?
決済 API ログ:リトライによる二重課金
決済 API ログ:冪等性キーが異なり二重課金
リプレイと決定性 • エラーや wait で中断された場合 ◦ 中断された場所ではなく全体を最初からリプレイ ◦ すでに完了した step
は結果を保存して再利用 • リプレイは決定的でなくてはならない ◦ 入力・保存値が同じなら同じフローの再現が必要 ◦ UUID や現在時刻など、非決定的な値は step に包む
1 回目 2 回目 key = A key = B
✖ 再度 UUID を 振ってしまう
1 回目 2 回目 key = A key = B
✖ 再度 UUID を 振ってしまう
単に「step の中に入れる」だけだと うまくいかない場合もある
1 回目 2 回目 key = A step が完了すれば 値が記憶される
✖
決済 API ログ:正しい冪等実行
なぜ「決定性」が必要なのか? 決定性によって何が保証されているのか?
Durable Functions: Semantics for Stateful Serverless S. Burckhardt, C. Gillum,
et al. (OOPSLA 2021) https://doi.org/10.1145/3485510
Durable Serverless の厄介さ • 開発者にとって考えるべきことが実は多い ◦ 課題 1:プログラムの実行状態の引き継ぎ ◦ 課題
2:永続層への安全な読み書きの制御 ◦ 課題 3:同一処理の重複・並行起動 ◦ 課題 4:ビジネスロジックの並行実行と同期 • 論文では課題 1 + 課題 3 をターゲットとしている
三つの実行モデル • 高レベルモデル ◦ エラー中断や二重起動がない、理想化されたモデル • Compute-Storage モデル(略記 C-S) ◦
揮発性の計算ノード + 永続ストレージのモデル • Replay-Based モデル(略記 R-B) ◦ 引数・戻り値の履歴のみを永続化するモデル
各モデル間の関係 定理(Burckhardt, et al., 2021, Theorem 5.3) 高レベルモデルと C-S モデルを比較すると、
C-S モデルの方が実現可能な挙動のパターンが狭い 定理(Burckhardt, et al., 2021, Theorem 6.4) C-S モデルと R-B モデルでは実現可能な挙動が等しい
つまり、Replay-Based モデルは 高レベルモデルの挙動を逸脱せず安全
システムの挙動とは何か?
インタプリタの意味論 • インタプリタの実行は状態遷移系とみなせる ◦ 状態:その時点の残りコード + 変数の値 ◦ 遷移:ステップ実行 •
遷移は書き換え規則として定義される ◦ 状態を式の形で表現する ◦ 現在の状態が規則にマッチしたら式を書き換える
インタプリタの実行
インタプリタの遷移規則(一部)
では挙動の逸脱とは何か?
模倣と双模倣 • 二つの状態遷移系の挙動の「選択肢の幅」を比較 • 状態遷移系 S1 が S2 を模倣するとは: ◦
S1 の状態と S2 の状態になんらかの対応が付く ◦ S2 がどう遷移しても、S1 がそれに追従できる • 観測できない遷移を無視する場合、弱模倣と呼ぶ • 逆向きも模倣になっている場合、双模倣と呼ぶ
高レベルモデルの意味論 • エラーや二重実行のない、理想化された「仕様」 • 状態 ◦ 場に存在する Durable Function と
step のリスト ◦ それぞれの処理位置(インタプリタの場合と同じ) • 遷移規則 ◦ Durable Function や step の起動・完了・ステップ実行
高レベルモデルの遷移規則(一部)
Compute-Storage モデルの意味論 • 揮発性の計算と、永続ストレージを分けたモデル • 状態 ◦ メッセージキューと実行状態を保存できる KVS •
遷移規則 ◦ 計算のステップ実行 ◦ ストレージへの Compare-And-Swap 的なコミット
高レベルモデルと C-S モデルの関係 定理(Burckhardt, et al., 2021, Theorem 5.3) ストレージへのコミットのような内部遷移を隠蔽することで
高レベルモデルは Compute-Storage モデルを弱模倣する • つまり C-S モデルは高レベルモデルの挙動を逸脱しない • 高レベルモデルが「挙動の見本」として機能している
しかし「普通のプログラム言語」では 実行状態の取得や保存は基本、無理
Replay-Based モデルの意味論 • 実行状態の代わりに、入出力の履歴を保存するモデル • 状態 ◦ メッセージキューと in /
out の列を保存できる KVS • 遷移規則 ◦ ステップ実行を行いつつ、in / out を履歴として記録 ◦ 履歴を消費してリプレイし、実行状態を復元する
C-S モデルと R-B モデルの関係 定理(Burckhardt, et al., 2021, Theorem 6.4)
履歴とそれをリプレイした結果の実行状態を対応させると Replay-Based モデルと Compute-Storage モデルとは 双模倣の関係にある • つまり R-B モデルは C-S モデルをお互いを真似できる • 状態遷移系として観測可能な挙動が区別できない
決定性はどこで効くのか?
リプレイの決定性 補題(Burckhardt, et al., 2021, Lemma 6.5) 履歴がリプレイ可能であれば、その結果は一意的に定まる • R-B
モデルを C-S モデルと結びつける上で最重要 • 逆に言えば、R-B モデルの定式化が「問題ない」ことは この性質が成り立っている範囲でしか主張できない
例:UUID の非決定性 • step の外での UUID 生成 ◦ UUID が履歴として記録されない
◦ リプレイで復元した実行状態が同じにならない • 定理 6.4 の証明で使う補題 6.5 が満たされない ◦ R-B モデルが高レベルモデルの挙動に収まることが 必ずしも保証できなくなる
本日のまとめ • AWS Lambda Durable Functions ◦ プログラムとして状態機械が記述できる ◦ 決定性を壊さないようにするのは実装者の責任
• Durable Functions の意味論と証明 ◦ 実行の進行を「状態」と「遷移規則」として定式化 ◦ 決定性の下で、リプレイは理想的な仕様を逸脱しない
The Worker Is Dead. Long Live the Workflow! Presented By
チェシャ猫 (@y_taka_23)