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
7.2k
決済のトランザクション管理術 / 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
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
840
プロポーザルのつくり方 〜個人技編〜 / How to come up with proposals
ohbarye
6
640
Data Migration on Rails
ohbarye
8
9.8k
Unlocking Potential of Property Based Testing with Ractor
ohbarye
3
16k
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
1.1k
My Favorite Protocol: Idempotency-Key Header
ohbarye
7
6.6k
エンジニア9名でプロポーザル提出8件, 採択3件を支える技術と文化 / Proposal Fight Culture
ohbarye
4
6.7k
管理機能アーキテクチャパターンの考察と実践 / Learn Architecture through Admin
ohbarye
33
18k
サブスクリプションサービスをつくる時にエンジニアが考えること / Behind the Scenes: Engineering a Subscription Service
ohbarye
16
18k
Other Decks in Technology
See All in Technology
srekaigi2025-hajimete-ippo-aws
masakichieng
0
190
2025/1/29 BigData-JAWS 勉強会 #28 (re:Invent 2024 re:Cap)/new-feature-preview-q-in-quicksight-scenarios-tried-and-tested
emiki
0
290
“自分”を大切に、フラットに。キャリアチェンジしてからの一年 三ヶ月で見えたもの。
maimyyym
0
230
【Λ(らむだ)】アップデート機能振り返りΛ編 / PADjp20250127
lambda
0
110
Re:Define 可用性を支える モニタリング、パフォーマンス最適化、そしてセキュリティ
pyama86
9
5k
AWSエンジニアに捧ぐLangChainの歩き方
tsukuboshi
0
130
一人から始めたSREチーム3年の歩み - 求められるスキルの変化とチームのあり方 - / The three-year journey of the SRE team, which started all by myself
vtryo
7
5.2k
インシデントキーメトリクスによるインシデント対応の改善 / Improving Incident Response using Incident Key Metrics
nari_ex
0
3.4k
Plants vs thieves: Automated Tests in the World of Web Security
leichteckig
0
140
バクラクの組織とアーキテクチャ(要約)2025/01版
shkomine
7
1.1k
サーバーレスで楽しよう!お気軽に始められる3つのポイント / Have fun with Serverless!
_kensh
2
100
もし今からGraphQLを採用するなら
kazukihayase
4
1.8k
Featured
See All Featured
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
52k
Testing 201, or: Great Expectations
jmmastey
41
7.2k
It's Worth the Effort
3n
184
28k
Statistics for Hackers
jakevdp
797
220k
Large-scale JavaScript Application Architecture
addyosmani
510
110k
Building Applications with DynamoDB
mza
93
6.2k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
BBQ
matthewcrist
85
9.4k
Optimising Largest Contentful Paint
csswizardry
33
3k
Agile that works and the tools we love
rasmusluckow
328
21k
Automating Front-end Workflow
addyosmani
1367
200k
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!