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
決済のトランザクション管理術 / How to Manage Payment Transaction
Search
Masato Ohba
September 27, 2018
Technology
7.7k
3
Share
決済のトランザクション管理術 / How to Manage Payment Transaction
Meguro.rb#19で発表した資料です。
https://megurorb.connpass.com/event/100401/
Masato Ohba
September 27, 2018
More Decks by Masato Ohba
See All by Masato Ohba
From Formal Specification to Property Based Test
ohbarye
0
2.6k
5年間のFintech × Rails実践に学ぶ - 基本に忠実な運用で築く高信頼性システム / 5 Years Fintech Rails Retrospective
ohbarye
9
12k
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
3
12k
組織のスケールを見据えたプロジェクトリードエンジニア制度の実践 / Project Lead Engineer for Scaling Engineering Organization
ohbarye
14
3.9k
Two Blades, One Journey: Engineering While Managing
ohbarye
9
13k
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
3k
プロポーザルのつくり方 〜個人技編〜 / How to come up with proposals
ohbarye
7
2.6k
Data Migration on Rails
ohbarye
8
16k
Unlocking Potential of Property Based Testing with Ractor
ohbarye
3
22k
Other Decks in Technology
See All in Technology
Claude Code / Codex / Kiro に AWS 権限を 渡すとき、何を設計すべきか
k_adachi_01
6
1.7k
PdM・Eng・QAで進めるAI駆動開発の現在地/aidd-with-pdm-eng-qa
shota_kusaba
0
250
CARTA HOLDINGS エンジニア向け 採用ピッチ資料 / CARTA-GUIDE-for-Engineers
carta_engineering
0
47k
LookerとADKで作る社内AIエージェント
chanyou0311
0
260
2026-05-14 要件定義からソース管理まで!IBM Bob基礎ハンズオン
yutanonaka
0
170
SpeechTranscriber + AIによる文字起こし機能
kazuki1220
0
110
AsyncStreamでマルチブロードキャストを実装する
1mash0
1
130
Terragrunt x Snowflake + dbt で作るマルチテナントなデータ基盤構築プラットフォーム
gak_t12
0
450
エムスリーテクノロジーズ株式会社 エンジニア向け紹介資料 / M3 Technologies Company Deck
m3_engineering
0
190
写真で見るAWS Summit Singapore 2026
k_adachi_01
0
120
分断された OT と IT を繋ぐ架け橋 -Kubernetes が切り拓く 産業用組み込み製品の現在地 -
yudaiono
1
120
freeeで運用しているAIQAについて
qatonchan
1
640
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2k
Building the Perfect Custom Keyboard
takai
2
760
Rebuilding a faster, lazier Slack
samanthasiow
85
9.5k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
44k
Rails Girls Zürich Keynote
gr2m
96
14k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1k
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.2k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
300
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
180
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
Transcript
#megurorb 決済のトランザクション管理術 決済のトランザクション管理術 @ohbarye Meguro.rb#19
#megurorb 決済のトランザクション管理術 すべてを 記録する
#megurorb 決済のトランザクション管理術 決済処理を例にした 分散トランザクション管理の一例 話すこと
#megurorb 決済のトランザクション管理術 分けることのできない 一連の情報処理の単位 トランザクションとは
#megurorb 決済のトランザクション管理術 こんなやつ この block に含まれるタスクが全て実行 されるか、あるいは全く実行されないこと を保証しなければならない
#megurorb 決済のトランザクション管理術 トランザクション単位 シーケンス図にすると 簡単? >
#megurorb 決済のトランザクション管理術 難しいのは “分散”トランザクション ネットワーク上の2つ以上の ホストが関連するトランザクション
#megurorb 決済のトランザクション管理術 トランザクション単位 クレカ決済の一例
#megurorb 決済のトランザクション管理術 *トランザクション単位がでか い *通信を挟む 最初の例との差分 *データを記録するホストが複数 *両者で整合性を保ちたい *システム境界をまたぐ *外的要因に影響を受ける
#megurorb 決済のトランザクション管理術 考えうる失敗例 ネットワーク通信は基本的に失敗する可 能性がある 決済ゲートウェイ側でエラー 事業者側でエラー 一方からは成功に見えるがもう一方からは 失敗扱いになる、なんてことも
#megurorb 決済のトランザクション管理術 障害が起きることを 前提とした設計にする すべての障害可能性を事前に潰すのは不可能
#megurorb 決済のトランザクション管理術 具体的な方針 ➔ 1. 進行状況をできる限り詳細に記録する ◆ (optional) 疑わしくてもサービス役務提供しておく ➔
2. データ不整合を検知できるようにする ◆ 偽陽性を許容する ➔ 3. 検知されたものについては一つ一つ精査する
#megurorb 決済のトランザクション管理術 1. 進行状況をできる限り詳細に記録する 購入要求受付 与信成功 確定要求成功 サービス提供
#megurorb 決済のトランザクション管理術 2. データ不整合を検知できるようにする
#megurorb 決済のトランザクション管理術 3. 検知されたものについては一つ一つ精査する 一重積んではユーザーのため 二重積んでは金のため... 続けるとパターンが見えてくる。 より精度の高いやり方や、自動化の兆 しが出てきます
#megurorb 決済のトランザクション管理術 記録さえ残しておけば、あとでどうにかできる 記録がなければ、どうしようもない なので すべてを記録する のが第一歩
#megurorb 決済のトランザクション管理術 Thank you!