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
Unlocking Potential of Property Based Testing with Ractor
ohbarye
2
62
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
420
My Favorite Protocol: Idempotency-Key Header
ohbarye
6
4.8k
エンジニア9名でプロポーザル提出8件, 採択3件を支える技術と文化 / Proposal Fight Culture
ohbarye
1
4.8k
管理機能アーキテクチャパターンの考察と実践 / Learn Architecture through Admin
ohbarye
33
15k
サブスクリプションサービスをつくる時にエンジニアが考えること / Behind the Scenes: Engineering a Subscription Service
ohbarye
15
17k
RuboCop Custom Formatter for Reviewdog Diagnostic Format
ohbarye
2
1.8k
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.5k
Other Decks in Technology
See All in Technology
5分で分かる(かもしれない) Vector engine for OpenSearch Serverless
tsukuboshi
1
400
グイグイ系QAエンジニアでやっていくよ!
____rina____
0
760
シンプルなHITL機械学習と様々なタスクにおけるHITL機械学習
naohachi89
0
320
20240509 CloudWatch でいろいろなものを監視してみよう
masaruogura
1
120
cgroup v2 で何が変わったのか / TechFeed Experts Night #28
tenforward
2
160
Taking Flight with Tailwind CSS
opdavies
0
4.3k
Databricksの生成AI戦略
taka_aki
1
370
[PyconUS 2024] Having fun with Pydantic and pattern matching
enforcerpl
0
170
回り回って効いてくる副次的効果としての技術広報/techpr
nishiuma
1
180
From here to resilience - a travel guide
ufried
1
160
技術力の伸ばし方を考える
khirata
0
140
Deno で作る快適な “as Code” プラットフォーム – TSKaigi 2024
pizzacat83
4
310
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
21
4k
Done Done
chrislema
178
15k
The Illustrated Children's Guide to Kubernetes
chrisshort
32
47k
Building an army of robots
kneath
300
41k
RailsConf 2023
tenderlove
9
580
Music & Morning Musume
bryan
41
5.6k
What the flash - Photography Introduction
edds
64
11k
We Have a Design System, Now What?
morganepeng
43
6.8k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
117
18k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
34
8.9k
Designing on Purpose - Digital PM Summit 2013
jponch
111
6.5k
The Invisible Customer
myddelton
114
12k
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!