Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MTC2018 - どうして僕らは決済処理をマイクロサービス化しようとしているのか

mercari
October 04, 2018

MTC2018 - どうして僕らは決済処理をマイクロサービス化しようとしているのか

Speaker: 斎藤 祐一郎

メルカリの売上金も電子マネーとして使えるようになるメルペイ。
もちろんメルカリでの買い物でも使える予定ですが、そこで問題となったのがメルカリ上での決済処理。
増築に増築を重ねたモノリシックなプログラムが、新しい決済手段の導入の前に立ちはだかります。
そこで、私達はGO BOLDにMicroservice化で解決しようとしていますが、その中で認められた問題点と解決策を示していきます。

0) なぜMicroservices化に踏み切ったのか
1) 複雑に絡み合ったswitch文となった業務フローを読み解く
2) 分散トランザクションで発生するであろうエラーとの戦い
3) 実際の移行実行の段取りとそのハードル

mercari

October 04, 2018
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

  1. 問題点 • 現状の決済処理の構 造はスケールしない • 開発中の電子決済 サービスとの間で 疎な結合を取る必要が 出てきた 解決策

    • 疎結合化に伴いgrpcの インタフェイスを用いた Microservice化 • 決済処理を再実装 (PaymentService) • 組織構造も同時に疎に していく
  2. 解決策2: ステートマシン 特徴 • 非同期に処理が可能。呼び出し 元を待たせない。 • 失敗時も再キューイングして自動 リトライ。可用性が高い。 •

    復帰不能な失敗は状態を巻き戻 しできる。 また、決済手段の追加も逐次可能と なっている。 再試行 再試行 成功 補償 トランザクション ポイント消 費 カード 決済 成功 開始 失敗