決済のトランザクション管理術 / How to Manage Payment Transaction

0ed400174f90a4bcee05f3455597932f?s=47 Masato Ohba
September 27, 2018

決済のトランザクション管理術 / How to Manage Payment Transaction

Meguro.rb#19で発表した資料です。

https://megurorb.connpass.com/event/100401/

0ed400174f90a4bcee05f3455597932f?s=128

Masato Ohba

September 27, 2018
Tweet

Transcript

  1. #megurorb 決済のトランザクション管理術 決済のトランザクション管理術 @ohbarye Meguro.rb#19

  2. #megurorb 決済のトランザクション管理術 すべてを 記録する

  3. #megurorb 決済のトランザクション管理術 決済処理を例にした 分散トランザクション管理の一例 話すこと

  4. #megurorb 決済のトランザクション管理術 分けることのできない 一連の情報処理の単位 トランザクションとは

  5. #megurorb 決済のトランザクション管理術 こんなやつ この block に含まれるタスクが全て実行 されるか、あるいは全く実行されないこと を保証しなければならない

  6. #megurorb 決済のトランザクション管理術 トランザクション単位 シーケンス図にすると 簡単? >

  7. #megurorb 決済のトランザクション管理術 難しいのは “分散”トランザクション ネットワーク上の2つ以上の ホストが関連するトランザクション

  8. #megurorb 決済のトランザクション管理術 トランザクション単位 クレカ決済の一例

  9. #megurorb 決済のトランザクション管理術 *トランザクション単位がでか い *通信を挟む 最初の例との差分 *データを記録するホストが複数 *両者で整合性を保ちたい *システム境界をまたぐ *外的要因に影響を受ける

  10. #megurorb 決済のトランザクション管理術 考えうる失敗例 ネットワーク通信は基本的に失敗する可 能性がある 決済ゲートウェイ側でエラー 事業者側でエラー 一方からは成功に見えるがもう一方からは 失敗扱いになる、なんてことも

  11. #megurorb 決済のトランザクション管理術 障害が起きることを 前提とした設計にする すべての障害可能性を事前に潰すのは不可能

  12. #megurorb 決済のトランザクション管理術 具体的な方針 ➔ 1. 進行状況をできる限り詳細に記録する ◆ (optional) 疑わしくてもサービス役務提供しておく ➔

    2. データ不整合を検知できるようにする ◆ 偽陽性を許容する ➔ 3. 検知されたものについては一つ一つ精査する
  13. #megurorb 決済のトランザクション管理術 1. 進行状況をできる限り詳細に記録する 購入要求受付 与信成功 確定要求成功 サービス提供

  14. #megurorb 決済のトランザクション管理術 2. データ不整合を検知できるようにする

  15. #megurorb 決済のトランザクション管理術 3. 検知されたものについては一つ一つ精査する 一重積んではユーザーのため 二重積んでは金のため... 続けるとパターンが見えてくる。 より精度の高いやり方や、自動化の兆 しが出てきます

  16. #megurorb 決済のトランザクション管理術 記録さえ残しておけば、あとでどうにかできる 記録がなければ、どうしようもない なので すべてを記録する のが第一歩

  17. #megurorb 決済のトランザクション管理術 Thank you!