Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Sagaパターン入門
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
nikawa2161
January 11, 2026
35
0
Share
Sagaパターン入門
nikawa2161
January 11, 2026
More Decks by nikawa2161
See All by nikawa2161
Node.js Subpath imports
nikawa2161
0
15
Sagaパターン入門(続編)
nikawa2161
0
28
沖縄観光とPostgreSQL排他制約の話
nikawa2161
0
33
20251209_プログラミング原則の学び
nikawa2161
0
22
自分のコードを数年ぶりに読んだら
nikawa2161
0
16
ユーザーインタビュー分析に参加して得られたことと気づき
nikawa2161
0
22
oEmbedとは?
nikawa2161
0
73
はじめまして、にかわです
nikawa2161
0
18
課題を映す問題空間と、答えを描く解決空間
nikawa2161
0
14
Featured
See All Featured
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
190
Rails Girls Zürich Keynote
gr2m
96
14k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.8k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
The Spectacular Lies of Maps
axbom
PRO
1
770
We Are The Robots
honzajavorek
0
230
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
270
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
180
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
110
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
200
KATA
mclloyd
PRO
35
15k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
190
Transcript
Saga パターン入門 2026.01.06 技術勉強会 1
本日のアジェンダ 1. ACID 特性の基礎 2. 分散システムにおける課題 3. Saga パターンとは 4.
Saga の実装方法 5. 分散環境での問題点 2
ACID 特性の基礎 データベースの 4 つの基本特性 3
単一 DB でのトランザクション シンプルで確実な処理 複数のアクションが同一 DB 内で実行 エラー発生時のロールバックが容易 ACID 特性が完全に保証される
問題点 → 複数サービスにまたがる場合はどうする? 4
分散システムの課題 マイクロサービスアーキテクチャ 課題: 各サービスの DB が分かれている 5
Saga パターンとは 分散トランザクションを実現する設計パターン 3 つの特徴 1. ステップごとの分割 トランザクションを独立した操作に分解 2. 補償トランザクション
失敗時は逆向きに実行して初期状態に戻す 3. 手動設計が必要 各ステップと補償処理を明示的に定義 6
Saga の実装方法 2 つのアプローチ 7
コレオグラフィー方式 各サービスが自律的に判断 メリット 柔軟性が高い サービス間の疎結合 単一障害点がない デメリット 全体の流れが把握しにくい デバッグが困難 イベントの設計が複雑
8
オーケストレーション方式 中央コーディネーターが全体を制御 メリット 全体の流れを把握しやすい デバッグが容易 シンプルな設計 デメリット 単一障害点になりやすい コーディネーターの負荷が高い サービス間が密結合になりがち
9
Saga と ACID 特性 分散環境での特性の変化 Isolation(分離性)は完全には保証されない 10
Isolation 問題の具体例 途中状態が見えてしまう シナリオ 1. ゴーヤー注文を受付(在庫確保完了) 2. 決済処理中...(まだ完了していない) 3. この時点で他のユーザーが在庫を閲覧
問題点 決済前なのに在庫が減って見える 最終的に決済が失敗する可能性もある 不整合な状態が外部に露出 11
Lost Update 問題 更新内容が上書きされる 必要な対策: 楽観的ロック、バージョン管理 12
Dirty Read 問題 コミット前の変更が見えてしまう 必要な対策: セマンティックロック、コミュータティブ更新 13
まとめ Saga パターンの要点 分散システムでのトランザクション管理に有用 コレオグラフィーとオーケストレーションの 2 方式 ACID 特性のうち Isolation
に課題あり Lost Update や Dirty Read への対策が必要 次回予告 → 具体的な対策方法(ロック戦略など)を解説 14
ご清聴ありがとうございました 15