| name | architecture |
| description | アプリケーションアーキテクチャ設計。DDD、クリーンアーキテクチャ、マイクロサービス、イベント駆動設計時に使用。 |
| user-invocable | true |
アプリケーションアーキテクチャ
スケーラブルで保守性の高いアプリケーション設計のためのパターンとガイドライン。
🔄 インタラクティブ設計フロー
重要: アーキテクチャ設計では、各決定ポイントで必ず AskUserQuestionTool を使用してユーザーに選択を求める。
フェーズ1: 要件ヒアリング
最初に以下を確認する(AskUserQuestionToolで質問):
-
プロジェクトの規模
- 小規模(MVP/PoC、1-3人)
- 中規模(プロダクト、4-10人)
- 大規模(エンタープライズ、10人以上)
-
優先事項(複数選択可)
- 開発速度重視
- 保守性重視
- スケーラビリティ重視
- コスト最小化
-
チームのスキルセット
- フロントエンド中心
- バックエンド中心
- フルスタック
- 特定技術の経験あり(具体的に確認)
🛠️ 技術選定ガイド
必ず、research-analyst agentを活用し、最新のトレンドに基づいた候補だしを心がける。また、AskUserQuestionで選択を求める
フェーズ2: フレームワーク選定
バックエンドフレームワーク候補例(AskUserQuestionで選択を求める):
| フレームワーク | コスト | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| Next.js (API Routes) | ⭐無料 | ⭐⭐簡単 | ⭐⭐簡単 | フルスタック、SSR |
| NestJS | ⭐無料 | ⭐⭐⭐中程度 | ⭐⭐簡単 | エンタープライズ、DI重視 |
| Express | ⭐無料 | ⭐⭐簡単 | ⭐⭐⭐やや複雑 | 軽量API、柔軟性重視 |
| Hono | ⭐無料 | ⭐⭐簡単 | ⭐⭐簡単 | エッジ、高速、軽量 |
| FastAPI (Python) | ⭐無料 | ⭐⭐簡単 | ⭐⭐簡単 | ML連携、Python経験あり |
| Go (net/http) | ⭐無料 | ⭐⭐⭐中程度 | ⭐⭐⭐やや複雑 | 高パフォーマンス、マイクロサービス |
research-analyst agentを活用し、最新のトレンドに基づいたフレームワーク候補を出すこと
フロントエンドフレームワーク候補例:
| フレームワーク | コスト | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| Next.js | ⭐無料 | ⭐⭐簡単 | ⭐⭐簡単 | SSR/SSG、SEO重視 |
| Remix | ⭐無料 | ⭐⭐⭐中程度 | ⭐⭐簡単 | フォーム処理、ネイティブWeb |
| Vite + React | ⭐無料 | ⭐⭐簡単 | ⭐⭐簡単 | SPA、ダッシュボード |
| Astro | ⭐無料 | ⭐⭐簡単 | ⭐簡単 | コンテンツサイト、静的中心 |
| SvelteKit | ⭐無料 | ⭐⭐簡単 | ⭐⭐簡単 | 軽量、学習コスト低 |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたフレームワーク候補を出すこと
フェーズ3: データベース選定
RDB候補例(AskUserQuestionで選択を求める):
| データベース | 月額コスト目安 | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| Supabase | 無料〜$25 | ⭐⭐簡単 | ⭐簡単 | 認証込み、リアルタイム |
| PlanetScale | 無料〜$29 | ⭐⭐簡単 | ⭐簡単 | MySQL互換、ブランチ機能 |
| Neon | 無料〜$19 | ⭐⭐簡単 | ⭐簡単 | PostgreSQL、サーバーレス |
| AWS RDS | $15〜 | ⭐⭐⭐中程度 | ⭐⭐⭐やや複雑 | エンタープライズ、高可用性 |
| Cloud SQL | $10〜 | ⭐⭐⭐中程度 | ⭐⭐⭐やや複雑 | GCP連携、マネージド |
| セルフホスト | VPS代のみ | ⭐⭐⭐⭐難しい | ⭐⭐⭐⭐複雑 | 完全制御、コスト最小化 |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたRDB候補を出すこと
NoSQL候補例:
| データベース | 月額コスト目安 | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| MongoDB Atlas | 無料〜$57 | ⭐⭐簡単 | ⭐簡単 | ドキュメント、柔軟スキーマ |
| Firebase Firestore | 無料〜従量課金 | ⭐⭐簡単 | ⭐簡単 | モバイル、リアルタイム |
| DynamoDB | 従量課金 | ⭐⭐⭐中程度 | ⭐⭐簡単 | AWS連携、高スケーラビリティ |
| Redis Cloud | 無料〜$5 | ⭐⭐簡単 | ⭐簡単 | キャッシュ、セッション |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたデータベース候補を出すこと
フェーズ4: インフラ/ホスティング選定
ホスティング候補例(AskUserQuestionで選択を求める):
| サービス | 月額コスト目安 | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| Vercel | 無料〜$20 | ⭐簡単 | ⭐簡単 | Next.js、フロントエンド |
| Cloudflare Pages/Workers | 無料〜$5 | ⭐⭐簡単 | ⭐簡単 | エッジ、グローバル配信 |
| Railway | $5〜 | ⭐⭐簡単 | ⭐簡単 | フルスタック、DB込み |
| Render | 無料〜$7 | ⭐⭐簡単 | ⭐簡単 | 汎用、Docker対応 |
| Fly.io | 従量課金 | ⭐⭐⭐中程度 | ⭐⭐簡単 | グローバル分散、コンテナ |
| AWS (ECS/Lambda) | 従量課金 | ⭐⭐⭐⭐難しい | ⭐⭐⭐やや複雑 | エンタープライズ、フル制御 |
| GCP (Cloud Run) | 従量課金 | ⭐⭐⭐中程度 | ⭐⭐簡単 | コンテナ、オートスケール |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたインフラ候補を出すこと
フェーズ5: 追加サービス選定
認証サービス例(AskUserQuestionで選択を求める):
| サービス | 月額コスト目安 | 実装難易度 | 運用負荷 | 特徴 |
|---|
| Supabase Auth | 無料〜 | ⭐⭐簡単 | ⭐簡単 | DB込み、Row Level Security |
| Clerk | 無料〜$25 | ⭐簡単 | ⭐簡単 | UI込み、多機能 |
| Auth.js (NextAuth) | 無料 | ⭐⭐⭐中程度 | ⭐⭐簡単 | 柔軟、セルフホスト |
| Firebase Auth | 無料〜 | ⭐⭐簡単 | ⭐簡単 | モバイル、ソーシャル連携 |
| Auth0 | 無料〜$35 | ⭐⭐簡単 | ⭐簡単 | エンタープライズ、SSO |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたサービス候補を出すこと
メッセージング/キュー例(AskUserQuestionで選択を求める):
| サービス | 月額コスト目安 | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| Upstash (Redis/Kafka) | 無料〜 | ⭐⭐簡単 | ⭐簡単 | サーバーレス、低コスト |
| AWS SQS | 従量課金(安い) | ⭐⭐⭐中程度 | ⭐⭐簡単 | シンプルキュー |
| AWS SNS + SQS | 従量課金 | ⭐⭐⭐中程度 | ⭐⭐⭐やや複雑 | Pub/Sub |
| Kafka (Confluent) | $0〜 | ⭐⭐⭐⭐難しい | ⭐⭐⭐⭐複雑 | 大規模ストリーミング |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたメッセージング/キュー候補を出すこと
ストレージ例(AskUserQuestionで選択を求める):
| サービス | 月額コスト目安 | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| Cloudflare R2 | 従量課金(安い) | ⭐⭐簡単 | ⭐簡単 | S3互換、エグレス無料 |
| Supabase Storage | 無料〜 | ⭐⭐簡単 | ⭐簡単 | DB連携、RLS |
| AWS S3 | 従量課金 | ⭐⭐⭐中程度 | ⭐⭐簡単 | 標準、高可用性 |
| Uploadthing | 無料〜$10 | ⭐簡単 | ⭐簡単 | ファイルアップロード特化 |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたストレージ候補を出すこと
📋 アーキテクチャスタイル選定
AskUserQuestionで以下から選択を求める(AskUserQuestionで選択を求める):
| スタイル | コスト | 実装難易度 | 運用負荷 | 適用場面 |
|---|
| レイヤードアーキテクチャ | ⭐低 | ⭐⭐簡単 | ⭐⭐簡単 | シンプルなCRUDアプリ、MVP |
| クリーンアーキテクチャ | ⭐低 | ⭐⭐⭐中程度 | ⭐⭐簡単 | ビジネスロジックが複雑 |
| DDD | ⭐⭐中 | ⭐⭐⭐⭐難しい | ⭐⭐⭐やや複雑 | 複雑なドメイン、長期運用 |
| マイクロサービス | ⭐⭐⭐高 | ⭐⭐⭐⭐難しい | ⭐⭐⭐⭐複雑 | 大規模、チーム分割 |
| イベント駆動 | ⭐⭐中 | ⭐⭐⭐⭐難しい | ⭐⭐⭐やや複雑 | 非同期処理、疎結合 |
必ず、research-analyst agentを活用し、最新のトレンドに基づいたスタイル候補を出すこと
🎯 設計実行フロー
- ヒアリング → AskUserQuestionで要件確認
- アーキテクチャスタイル提案 → 候補を比較表で提示、選択を求める
- 技術スタック提案 → フレームワーク/DBの候補を提示、選択を求める
- インフラ提案 → ホスティング/サービスの候補を提示、選択を求める
- 選択確認 → 全選択をサマリー表示、最終確認を求める
- 設計ドキュメント生成 → 選択に基づいて設計書を作成
📝 クリーンアーキテクチャ基本構造
src/
├── domain/ # ビジネスルール(依存なし)
│ ├── entities/
│ └── value-objects/
├── application/ # ユースケース
│ ├── use-cases/
│ └── ports/ # インターフェース
├── infrastructure/ # 外部サービス実装
│ ├── repositories/
│ └── services/
└── presentation/ # UI/API
├── controllers/
└── views/
依存方向ルール
presentation → application → domain
↓ ↓
infrastructure ← (ports)
重要: 依存は常に内側(domain)に向かう。domainは何にも依存しない。
✅ 設計チェックリスト
📚 詳細リファレンス
references/clean-architecture.md - クリーンアーキテクチャ詳細
references/ddd-patterns.md - DDDパターン集
references/microservices.md - マイクロサービス設計
references/event-driven.md - イベント駆動アーキテクチャ