ストーリー
10ヶ月目 — L3の最終月。ここまであなたは、アーキテクチャ設計の基礎からスケーラビリティ、データアーキテクチャ、クラウドネイティブ、マイクロサービス、SRE、セキュリティ、パフォーマンス、技術戦略まで、9ヶ月間にわたって学び続けてきました。
佐藤CTOが画面を見せました。そこには、あるフィンテック企業のプロジェクト概要が表示されています。
プロジェクト概要
ビジネスコンテキスト
あなたは、急成長中のフィンテック企業「NexPay(ネクスペイ)」のリードアーキテクトに任命されました。NexPayは現在、QRコード決済サービスを単独で提供していますが、経営戦略として次世代のフィンテックスーパーアプリへの進化を決定しました。
NexPayの現状と目標:
現在(2025年):
- QRコード決済アプリ(月間アクティブユーザー300万人)
- 加盟店数: 50万店舗
- 月間取引件数: 2億件
- 技術スタック: モノリスアプリケーション(Java/Spring Boot)
- インフラ: AWS東京リージョン単一
目標(2027年末):
- 決済・送金・投資を統合したスーパーアプリ
- 月間アクティブユーザー: 1,000万人
- 加盟店数: 200万店舗
- 月間取引件数: 10億件
- PCI DSS Level 1準拠
- マルチリージョン対応(国内2リージョン + 海外展開準備)
ビジネス要件
| カテゴリ | 要件 | 優先度 |
|---|---|---|
| 決済 | QRコード決済、NFC決済、オンライン決済 | 必須 |
| 決済 | 加盟店リアルタイム売上管理ダッシュボード | 必須 |
| 送金 | 個人間送金(P2P)、割り勘機能 | 必須 |
| 送金 | 銀行口座連携、ATM入出金 | 必須 |
| 投資 | 株式・投資信託の購入・売却 | 重要 |
| 投資 | つみたて投資(定期自動購入) | 重要 |
| 投資 | ポイント投資(決済ポイントで投資) | 重要 |
| 共通 | KYC(本人確認)、AML(マネーロンダリング対策) | 必須 |
| 共通 | プッシュ通知、取引履歴 | 必須 |
| 共通 | カスタマーサポート(チャット、FAQ) | 重要 |
機能間の統合シナリオ
スーパーアプリの価値は、個別機能ではなく機能間の統合にあります。
// スーパーアプリの統合シナリオ例
interface SuperAppIntegrationScenarios {
// 決済→投資: お釣り投資
changeInvestment: {
description: "決済時のお釣りを自動的に投資に回す";
flow: "決済完了 → お釣り計算 → 投資口座に自動入金 → 投資信託購入";
involvedServices: ["Payment", "Investment", "Account"];
};
// 送金→決済: 割り勘→決済
splitPayment: {
description: "グループ決済後、参加者に自動で割り勘請求";
flow: "決済完了 → 割り勘計算 → 参加者に送金リクエスト → 自動引落";
involvedServices: ["Payment", "Transfer", "Notification"];
};
// 投資→決済: ポイント投資
pointInvestment: {
description: "決済で貯まったポイントで投資信託を購入";
flow: "ポイント残高確認 → 投資注文 → ポイント消費 → 約定";
involvedServices: ["Point", "Investment", "Account"];
};
}
「スーパーアプリの難しさは、単に複数の機能を1つのアプリに入れることじゃない。機能間の連携がシームレスであることが価値の源泉だ。そしてそれは、アーキテクチャが正しくなければ実現できない」 — 佐藤CTO
プロジェクトの技術的チャレンジ
チャレンジマップ
このプロジェクトで直面する技術的課題は、L3の各月で学んだ内容に直結します。
| チャレンジ | 関連する学び(Month) | 難易度 |
|---|---|---|
| サービス分割とAPI設計 | Month 5: マイクロサービス | ★★★★ |
| トランザクション整合性 | Month 3: データアーキテクチャ | ★★★★★ |
| 10億件/月のスケーラビリティ | Month 2: スケーラブルシステム | ★★★★ |
| PCI DSS準拠のセキュリティ | Month 7: セキュリティアーキテクチャ | ★★★★★ |
| マルチリージョンインフラ | Month 4: クラウドネイティブ | ★★★★ |
| 99.99%可用性の決済基盤 | Month 6: SRE | ★★★★★ |
| レイテンシ最適化 | Month 8: パフォーマンス | ★★★★ |
| 技術選定とチーム設計 | Month 9: 技術戦略 | ★★★★ |
| 要件分析とトレードオフ | Month 1: アーキテクチャ基礎 | ★★★★ |
規模感の理解
トラフィック推計:
ピーク時のリクエスト量:
- 決済API: 10,000 TPS(Transactions Per Second)
- 残高照会: 50,000 RPS(Requests Per Second)
- 通知配信: 100万通/分(キャンペーン時)
- 投資注文: 1,000 TPS(マーケット開場時)
データ量:
- 取引データ: 10億件/月 × 平均1KB = 約1TB/月
- ユーザーデータ: 1,000万人 × 平均10KB = 約100GB
- 監査ログ: 約5TB/月(PCI DSS要件)
- 分析データ: 約10TB/月
キャップストーンの進め方
6つのステップ
| Step | テーマ | 時間 | 内容 |
|---|---|---|---|
| Step 1 | プロジェクト要件分析 | 3h | ステークホルダー分析、品質属性、制約の整理 |
| Step 2 | アーキテクチャ設計 | 4h | C4図、サービス分解、データ設計、インフラ設計 |
| Step 3 | 横断的関心事の設計 | 4h | セキュリティ、可観測性、性能、DR |
| Step 4 | 実装・運用計画 | 4h | 技術選定、CI/CD、移行計画、コスト |
| Step 5 | アーキテクチャレビュー | 3h | ATAM、リスク分析、ADR、レビュー準備 |
| Step 6 | L3卒業 | 2h | 最終演習、卒業クイズ |
成果物一覧
最終的に作成するドキュメント群です。
graph TD
ROOT["NexPay Architecture Document"]
ROOT --- S1["1. 要件分析"]
ROOT --- S2["2. アーキテクチャ設計"]
ROOT --- S3["3. 横断的関心事"]
ROOT --- S4["4. 実装・運用計画"]
ROOT --- S5["5. レビュー資料"]
S1 --- S1A["ステークホルダーマップ"]
S1 --- S1B["品質属性シナリオ
10件以上"]
S1 --- S1C["制約一覧"]
S2 --- S2A["C4 System Context Diagram"]
S2 --- S2B["C4 Container Diagram"]
S2 --- S2C["サービス一覧と境界"]
S2 --- S2D["データアーキテクチャ"]
S2 --- S2E["インフラストラクチャ設計"]
S3 --- S3A["セキュリティ設計書"]
S3 --- S3B["可観測性設計書"]
S3 --- S3C["パフォーマンス計画"]
S3 --- S3D["DR計画"]
S4 --- S4A["技術スタック選定書"]
S4 --- S4B["CI/CDパイプライン設計"]
S4 --- S4C["移行ロードマップ"]
S4 --- S4D["コスト・ROI分析"]
S5 --- S5A["ATAM分析結果"]
S5 --- S5B["リスク分析表"]
S5 --- S5C["ADR(5件)"]
style ROOT fill:#1e293b,stroke:#475569,color:#f8fafc
style S1 fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e40af
style S2 fill:#d1fae5,stroke:#059669,color:#065f46
style S3 fill:#fef3c7,stroke:#d97706,stroke-width:2px,color:#92400e
style S4 fill:#f3e8ff,stroke:#7c3aed,color:#5b21b6
style S5 fill:#fee2e2,stroke:#dc2626,color:#991b1b
style S1A fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S1B fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S1C fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S2A fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S2B fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S2C fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S2D fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S2E fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S3A fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S3B fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S3C fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S3D fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S4A fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S4B fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S4C fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S4D fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S5A fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S5B fill:#f3f4f6,stroke:#9ca3af,color:#374151
style S5C fill:#f3f4f6,stroke:#9ca3af,color:#374151
評価基準
キャップストーンプロジェクトの評価基準は以下の通りです。
| 評価軸 | 配点 | 基準 |
|---|---|---|
| 要件の網羅性 | 20% | ステークホルダーの関心事を漏れなく捉えているか |
| 設計の一貫性 | 25% | 要件→設計→実装が論理的に一貫しているか |
| トレードオフの明確さ | 25% | 各判断の根拠とトレードオフが明示されているか |
| 実現可能性 | 15% | 技術的に実現可能で、チームが実装できる設計か |
| 文書の品質 | 15% | 他のエンジニアが理解・レビューできる品質か |
「アーキテクトの仕事は”正解を出すこと”ではなく、“なぜその判断をしたのかを説明できること”だ。このキャップストーンでは、君の判断力と説明力を最大限に発揮してほしい」 — 佐藤CTO
まとめ
| ポイント | 内容 |
|---|---|
| プロジェクト | NexPay: 次世代フィンテックスーパーアプリ |
| 規模 | 1,000万ユーザー、10億件/月、マルチリージョン |
| 統合要素 | 決済・送金・投資を統合、機能間シームレス連携 |
| 期間 | 6 Steps(20時間) |
| 評価 | 設計の一貫性とトレードオフの明確さが最重要 |
チェックリスト
- NexPayのビジネスコンテキストと目標を理解した
- 決済・送金・投資の統合シナリオを把握した
- プロジェクトの規模感(トラフィック、データ量)を理解した
- 6つのステップと成果物一覧を確認した
- 評価基準を理解した
次のステップへ
次は「ステークホルダー分析とアーキテクチャドライバー」に進みます。NexPayプロジェクトに関わるすべてのステークホルダーを特定し、彼らの関心事からアーキテクチャドライバーを抽出しましょう。
推定読了時間: 30分