アーキテクチャ意思決定記録 (ADR)
Architecture Decision Records (ADR) は、重要なアーキテクチャ上の判断を記録するドキュメントです。 なぜその判断をしたのか、どのような代替案があったのか、その影響は何かを明確にします。
ADR一覧
基本アーキテクチャ
- ADR-0001: ポート/アダプタパターンの採用 - server-coreとserver-platformの分離
- ADR-0002: Connect RPCによるHTTP/JSON API提供 - 外部APIプロトコル選択
- ADR-0003: モノレポ構成の採用 - リポジトリ構成の選択
フロントエンド
- ADR-0004: Expoによるモバイルアプリ開発 - モバイルアプリ開発プラットフォームの選択
通信・プロトコル
- ADR-0005: Protocol BuffersによるAPIコントラクト定義 - APIコントラクト定義の選択
データ管理
- 今後追加予定
インフラ・運用
- 今後追加予定
ADRの記録方針
いつADRを記録するか
以下のような重要な判断を下した際にADRを記録します:
- アーキテクチャパターンの選択(例:CQRS、Event Sourcing)
- 技術スタックの選択(例:データベース、メッセージキュー)
- 大きな設計判断(例:マイクロサービス vs モノリス)
- パフォーマンスやスケーラビリティに関わる判断
ADRの構造
各ADRは以下の要素を含みます:
- Title: 簡潔なタイトル
- Status: ステータス(提案中、採用済み、非推奨など)
- Context: 判断を行う背景・状況
- Decision: 採用した判断とその理由
- Consequences: 判断による影響(メリット・デメリット)
ステータス
- Proposed: 提案中
- Accepted: 採用済み
- Deprecated: 非推奨(より良い代替案がある)
- Superseded: 別のADRに置き換えられた