Meguro.rb#19で発表した資料です。
https://megurorb.connpass.com/event/100401/
#megurorb 決済のトランザクション管理術決済のトランザクション管理術@ohbaryeMeguro.rb#19
View Slide
#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!