Slide 1

Slide 1 text

Session Title メルペイのあと払いとスマートマネーを 支える返済基盤マイクロサービスの進化 Cui Peichong Merpay Credit Design Team

Slide 2

Slide 2 text

Cui Peichong/ @pedro 2019年にバックエンドエンジニアとしてメルペイに 入社。Credit Designチームでメルペイスマート払 い、メルペイスマートマネーの請求・清算に関わる microserviceの開発に携わっている。 Credit Design Team Backend Engineer

Slide 3

Slide 3 text

返済基盤の現状 01 invoice マイクロサービスを導入した経緯 02 技術負債 03 invoice マイクロサービスの独立化 04 Agenda

Slide 4

Slide 4 text

返済基盤の現状

Slide 5

Slide 5 text

メルペイのあと払い 支払い方法 ● 自動引落し ● メルペイ残高 ● コンビニ/ATM

Slide 6

Slide 6 text

メルペイスマートマネー 返済方法 ● 自動引落し ● 残高でいつでも返済

Slide 7

Slide 7 text

lending deferred-pay invoice bank payment debt 銀行接続、チャージ 決済処理 債権管理 Common Foundation 自動引落しで返済 メルペイ残高で返済 コンビニ/ATMで返済 あと払いの利用・請求 定額払いの契約管理 スマートマネーの利用・請求 スマートマネーの契約管理

Slide 8

Slide 8 text

invoiceマイクロサービスを導 入した経緯

Slide 9

Slide 9 text

deferred-pay bank payment debt 銀行接続、チャージ 決済処理 債権管理 Common Foundation あと払いの利用・請求 定額払いの契約管理 自動引落しで返済 メルペイ残高で返済 コンビニ/ATMで返済 メルペイスマートマネーサービス開始前

Slide 10

Slide 10 text

メルペイスマートマネー開発プロジェクト メルカリアプリで借入・返済が可能 自動引落しとメルペイ残高での返済方法を提供 あと払いの自動引落しと同じ日に実行した場合、銀行への APIキャパシティ制御 延滞後の自動充当を実現する時に、あと払い請求書との優先順位制御

Slide 11

Slide 11 text

返済機能のマイクロサービス構成の検討 deferred-pay lending あと払いの利用・請求・返済 スマートマネーの利用・請求・返済 Common Foundation bank payment debt Pros Cons ● 独立で設計開発できる ● 銀行へのAPIキャパシティ制御が困難 ● 充当順位の制御が困難 ● あと払いの返済機能と重複実装になる 「案1」各MSがそれぞれ返済機能を実装する

Slide 12

Slide 12 text

返済機能のマイクロサービス構成の検討 deferred-pay lending あと払いの利用・請求・返済 スマートマネーの利用・請求 Common Foundation bank payment debt Pros Cons ● 理想形のMS構成で作れる ● 銀行へのAPIキャパシティ制御が困難 ● 充当順位の制御が困難 ● あと払いの返済機能と重複実装になる ● 将来あと払い返済機能のマイグレーション invoice 返済 「案2」独立の返済MSを作る、将来あと払いの返済も統合する

Slide 13

Slide 13 text

返済機能のマイクロサービス構成の検討 deferred-pay lending あと払いの利用・請求・返済 (スマートマネーの返済 ) スマートマネーの利用・請求 Common Foundation bank payment debt Pros Cons ● 返済機能の一本化 ● 重複実装少ない ● MS責務と実際の構成の乖離 invoice 「案3」あと払いの返済機能を利用する

Slide 14

Slide 14 text

決定案 deferred-pay lending あと払いの利用・請求・返済 (スマートマネーの返済 ) スマートマネーの利用・請求 Common Foundation bank payment debt invoice deferred-pay lending あと払いの利用・請求 スマートマネーの利用・請求 Common Foundation bank payment debt invoice 返済基盤 「案3」+ 返済MSの独立

Slide 15

Slide 15 text

返済関連データモデルの整理・拡張 請求書データモデルの例

Slide 16

Slide 16 text

新規gRPC Service deferred-pay invoice gRPC 自動引落しロジック 残高返済ロジック 既存の返済ロジックを拡張して、開発 コストを抑える 今後MS独立化を意識して、新規 gRPC serviceを作成

Slide 17

Slide 17 text

技術負債

Slide 18

Slide 18 text

同じコードベース あと払い機能の開発時、invoice MSへの影響を意識 返済機能の開発時、あと払いへの影響を意識

Slide 19

Slide 19 text

同じデータベース あと払いサービスのメンテナンスコスト データ分析の複雑さ

Slide 20

Slide 20 text

invoice マイクロサービスの独立化

Slide 21

Slide 21 text

独立のinvoice MS 抽象化したデータモデル 同じI/FのgRPC serviceを提供する invoice(new) invoice gRPC 自動引落しロジック 残高返済ロジック コンビニ/ATM返済 ロジック

Slide 22

Slide 22 text

マイグレーション方針 deferred-pay lending invoice gRPC invoice(new) invoice gRPC customer単位でマイグレーション マイグレーション済みの場合、リクエストを Proxyする client側修正なし

Slide 23

Slide 23 text

マイグレーションバッチ deferred-pay migration batch Spanner invoice(new) Spanner migration gRPC

Slide 24

Slide 24 text

マイグレーション進行

Slide 25

Slide 25 text

マイグレーション進行 初期段階でマイグレーションのペースを抑える マイグレーション比率の拡大と共に、イレギュラーデータを検知と解決 一定期間の安定運用が確認でき次第、マイグレーションのペースを上げる

Slide 26

Slide 26 text

lending deferred-pay invoice 自動引落しで返済 メルペイ残高で返済 コンビニ/ATMで返済 あと払いの利用・請求 定額払いの契約管理 スマートマネーの利用・請求 スマートマネーの契約管理 すべてのCustomerのマイグレーション後

Slide 27

Slide 27 text

まとめ

Slide 28

Slide 28 text

まとめ 技術負債を意識したMS構成の意思決定 技術負債の解消計画を立て、理想なアーキテクチャを求める 段階的にマイグレーションを実行する

Slide 29

Slide 29 text

No content