プロダクトチーム、開発担当の今野です。

このページでは、チームメンバーから技術面でのポストを少しずつ紹介していきたいと考えており、初回の内容は世間で話題の(ありがとうございます!)100億円キャンペーンを支えるPayPayのシステムについてご紹介します。

プロダクトチームはPayPay アプリとシステムを支えており、AWS上に kubernetes のクラスタを構築し、その上でたくさんのシステムが動いています。システムそのものはマイクロサービスです。

1つのシステムのまとまりを「コンポーネント」と呼んでおり、現在PayPayシステムには7つのコンポーネントがあります。

  • App (BFF)
    • PayPayアプリの開発とアプリ用のBFF (Backend for frontend)
  • Payment
    • 決済のコア機能の提供
  • Wallet
    • 残高管理
  • User Module
    • ユーザー情報管理
  • Risk
    • Risk情報管理
  • Merchant
    • 加盟店情報管理、加盟店ツールなどの提供
  • CLM
    • キャンペーン管理

各コンポーネントごとにチームが、複数のサービスを作り、開発・運用しています。

「Payment」にはマイクロサービス(決済の情報を管理するシステムや明細を提供するシステム)など十数個に別れています。
他のコンポーネントも同様にそれぞれいくつかのサービスを開発・運用していて、 システム同士が様々な方法で通信しシステムが動いています。

中には Scala や、Node.js で書かれているシステムもありますが、各システムは基本的にはJavaで Spring Boot を用いて実装されています 。
これら外部サービスや、kubernetesクラスタなどの管理をしているのがPlatformチームです。

例をあげると、

などなど、まだまだたくさんあります。

RDSなどはそれぞれのマイクロサービスごとにインスタンスを用意しています。
これら外部サービスや、kubernetesクラスタなどの管理をしているのがPlatformチームです。

図解すると以下のとおりです。

以上、PayPayシステムの全体像についてざっくり説明させていただきました。
PayPayがどう作動しているか、興味を持っていただけたら嬉しいです!