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
3
6.8k
決済のトランザクション管理術 / How to Manage Payment Transaction
Meguro.rb#19で発表した資料です。
https://megurorb.connpass.com/event/100401/
Masato Ohba
September 27, 2018
Tweet
Share
More Decks by Masato Ohba
See All by Masato Ohba
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
390
My Favorite Protocol: Idempotency-Key Header
ohbarye
6
4.6k
エンジニア9名でプロポーザル提出8件, 採択3件を支える技術と文化 / Proposal Fight Culture
ohbarye
1
4.3k
管理機能アーキテクチャパターンの考察と実践 / Learn Architecture through Admin
ohbarye
32
15k
サブスクリプションサービスをつくる時にエンジニアが考えること / Behind the Scenes: Engineering a Subscription Service
ohbarye
15
17k
RuboCop Custom Formatter for Reviewdog Diagnostic Format
ohbarye
2
1.7k
DB外の副作用をトランザクションから分離しよう / Isolate out-of-DB side effects from transactions
ohbarye
7
3.8k
Balance Security and Usability in the Field of 3D Secure
ohbarye
5
3.4k
Safe Retry with Idempotency-Key Header
ohbarye
5
3.7k
Other Decks in Technology
See All in Technology
アクセシビリティを考慮したUI/CSSフレームワーク・ライブラリ選定
yajihum
2
1k
Janus
bkuhlmann
1
490
よく聞くけど使ったことないソフトウェアNo.1 KafkaとSnowflake
foursue
4
360
Postman v10リリース後を振り返る / Looking back at Postman v10 after release
yokawasa
1
160
VS CodeでAWSを操作しよう
smt7174
8
1.7k
アクセス制御にまつわる改善 / Improving access control
itkq
0
550
LLM開発・活用の舞台裏@2024.04.25
yushin_n
1
340
VSCodeの拡張機能を作っている話
ebarakazuhiro
1
520
サーバー間 GraphQL と webmock-graphql の話 / server-to-server graphql and webmock-graphql
qsona
2
190
Java EE/Jakarta EEの現状と将来―クラウドネイティブ時代にJava EEは対応できるのか?―
takakiyo
1
170
ServiceNow Knowledge Learning Rise up
manarobot
0
210
EMとして2023年度に頑張ったこと / What we did well in FY2023 as a EM
pauli
1
170
Featured
See All Featured
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
Embracing the Ebb and Flow
colly
80
4.1k
Music & Morning Musume
bryan
41
5.6k
What's new in Ruby 2.0
geeforr
337
31k
The World Runs on Bad Software
bkeepers
PRO
61
6.7k
Art, The Web, and Tiny UX
lynnandtonic
289
19k
Web development in the modern age
philhawksworth
202
10k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
7
1k
It's Worth the Effort
3n
180
27k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
121
39k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
14
1.6k
Gamification - CAS2011
davidbonilla
76
4.6k
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!