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.6k
決済のトランザクション管理術 / 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
5年間のFintech × Rails実践に学ぶ - 基本に忠実な運用で築く高信頼性システム / 5 Years Fintech Rails Retrospective
ohbarye
9
8.8k
On-the-fly Suggestions of Rewriting Method Deprecations
ohbarye
3
11k
組織のスケールを見据えたプロジェクトリードエンジニア制度の実践 / Project Lead Engineer for Scaling Engineering Organization
ohbarye
14
3.8k
Two Blades, One Journey: Engineering While Managing
ohbarye
8
9.7k
Git scrapingで始める継続的なデータ追跡 / Git Scraping
ohbarye
5
2.9k
プロポーザルのつくり方 〜個人技編〜 / How to come up with proposals
ohbarye
7
2.5k
Data Migration on Rails
ohbarye
8
15k
Unlocking Potential of Property Based Testing with Ractor
ohbarye
3
21k
プロトタイピングによる不確実性の低減 / Reducing Uncertainty through Prototyping
ohbarye
5
2.9k
Other Decks in Technology
See All in Technology
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
620
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
17k
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
1
2.8k
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
260
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
210
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
2
380
CDKで始めるTypeScript開発のススメ
tsukuboshi
1
480
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
10Xにおける品質保証活動の全体像と改善 #no_more_wait_for_test
nihonbuson
PRO
2
320
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
190
What happened to RubyGems and what can we learn?
mikemcquaid
0
310
Featured
See All Featured
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
220
Google's AI Overviews - The New Search
badams
0
910
The Cost Of JavaScript in 2023
addyosmani
55
9.5k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
51
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
180
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
130
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
3.9k
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!