アーキテクチャ設計
Bazbiiシステムの設計思想と全体構造を説明します。 このセクションは、新しい機能の設計や技術判断を行う際の基盤となる情報を提供します。
セクション一覧
設計概要
- システム概要: システム全体の構成と通信フロー
- レイヤー構成: server-apps, server-core, server-platformの責務
- 境界と責務: 各コンポーネントの境界と依存関係
- 依存関係: モジュール間の依存方向とフロー
要件・意思決定
- 非機能要件: 非機能要件の一覧と実装状況
- パフォーマンス要件: パフォーマンス目標とベンチマーク
- アーキテクチャ意思決定記録: 重要な設計判断の記録 (ADR)
- 検討中の内容: 現在検討中・提案中のアーキテクチャ内容
設計原則
1. クリーンアーキテクチャ
- server-core: ビジネスロジックとドメインモデル。外部依存なし
- server-platform: インフラストラクチャの実装(DB、ログ、認証など)
- server-apps: アプリケーションのエントリーポイント。依存注入のコンポジションルート
2. 依存方向の制御
- 依存は一方向のみ
- server-coreはserver-platformやserver-appsに依存しない
- インターフェースを通じて結合度を下げる
3. プロトコル設計
- 外部API: Connect RPC (HTTP/JSON)
- 内部通信: gRPC
- コントラクト: Protocol Buffersで定義
主要な設計判断
システムの設計に関する重要な判断は、アーキテクチャ意思決定記録 (ADR)に詳細に記録されています。
主な決定事項
- ADR-0001: ポート/アダプタパターンの採用
- テスタビリティと変更への耐性を向上させるため
- ADR-0002: Connect RPCによるHTTP/JSON API提供
- 型安全性と開発効率を両立するため
- ADR-0003: モノレポ構成の採用
- 型定義の共有と開発効率を向上させるため
関連ドキュメント
- システム概要 - 全体像の詳細
- 境界と責務 - 各レイヤーの責務分担
- 非機能要件 - 実装すべき要件一覧
- アーキテクチャ意思決定記録 - 重要な設計判断の詳細
- 検討中の内容 - 現在検討中の提案