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

メルペイのあと払いとスマートマネーを支える返済基盤マイクロサービスの進化 / The Development of the Repayment Platform Microservices Supporting Merpay deferred payments and Smart Money

mercari
October 14, 2023

メルペイのあと払いとスマートマネーを支える返済基盤マイクロサービスの進化 / The Development of the Repayment Platform Microservices Supporting Merpay deferred payments and Smart Money

メルペイスマートマネーのリリースと共に既存のあと払い請求書を含めて返済機能を提供するマイクロサービスも作られました。リリース当時のマイクロサービスの構成が理想の各マイクロサービスの責務と乖離がありましたが、マイクロサービスの分割やデータマイグレーションを実施して、段階的にアーキテクチャが理想の形になっています。
本セッションでは、返済基盤マイクロサービスの誕生から今までのアーキテクチャの進化をご紹介します。

Together with the release of Merpay Smart Money, our engineers created a microservice that provides repayment features, including such things as invoices for existing deferred payments. At the time the product was released, there was a divide between the configuration of the microservices and the ideal responsibilities of each microservice, but in the process of splitting microservices and implementing data migration, it has become closer to the ideal architecture.
In this session, we’ll share the story of how we developed the architecture of our repayment platform microservices by tracing a line from the early days of development to the present.
------
Merpay & Mercoin Tech Fest 2023は3日間のオンライン技術カンファレンスです。
IT企業で働くソフトウェアエンジニアおよびメルペイ・メルコインの技術スタックに興味がある方々を対象に2023年8月22日(火)、23日(水)、24日(木)の3日間、開催します。 Merpay & Mercoin Tech Fest は事業との関わりから技術への興味を深め、プロダクトやサービスを支えるエンジニアリングを知ることができるお祭りです。

今年のテーマは「Unleash Fintech」。 メルペイ・メルコインのこれまでの技術的な取り組みはもちろん、メルカリグループのFintech事業における新たな挑戦をお伝えします。 セッションでは事業を支える組織・技術・課題などへの試行錯誤やアプローチなど多面的にご紹介予定です。

メルペイ・メルコインが今後どのようにUnleash(解放)していくのか、ぜひ見に来てください。

■イベント関連情報
- 公式ウェブサイト:https://events.merpay.com/techfest-2023/
- 申し込みページ:https://mercari.connpass.com/event/286670/
- Twitterハッシュタグ: #MerpayMercoinTechFest
■リンク集
- メルカリ・メルペイイベント一覧:https://mercari.connpass.com/
- メルカリキャリアサイト:https://careers.mercari.com/
- メルカリエンジニアリングブログ:https://engineering.mercari.com/blog/
- メルカリエンジニア向けTwitterアカウント:https://twitter.com/mercaridevjp
- 株式会社メルペイ:https://jp.merpay.com/

mercari

October 14, 2023
Tweet

More Decks by mercari

Other Decks in Technology

Transcript

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. 返済基盤の現状

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  17. 技術負債

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  24. マイグレーション進行

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide