プロダクトチーム、開発担当の今野です。
このページでは、チームメンバーから技術面でのポストを少しずつ紹介していきたいと考えており、初回の内容は世間で話題の(ありがとうございます!)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がどう作動しているか、興味を持っていただけたら嬉しいです!