$30 off During Our Annual Pro Sale. View Details »

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

Masato Ohba
September 27, 2018

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

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

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

Masato Ohba

September 27, 2018
Tweet

More Decks by Masato Ohba

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  9. #megurorb 決済のトランザクション管理術
    *トランザクション単位がでか

    *通信を挟む
    最初の例との差分
    *データを記録するホストが複数
    *両者で整合性を保ちたい
    *システム境界をまたぐ
    *外的要因に影響を受ける

    View Slide

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

    View Slide

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

    View Slide

  12. #megurorb 決済のトランザクション管理術
    具体的な方針
    ➔ 1. 進行状況をできる限り詳細に記録する
    ◆ (optional) 疑わしくてもサービス役務提供しておく
    ➔ 2. データ不整合を検知できるようにする
    ◆ 偽陽性を許容する
    ➔ 3. 検知されたものについては一つ一つ精査する

    View Slide

  13. #megurorb 決済のトランザクション管理術
    1. 進行状況をできる限り詳細に記録する
    購入要求受付
    与信成功
    確定要求成功
    サービス提供

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide