ソフトウェア設計

ADR(アーキテクチャ決定記録) えーでぃーあーる

ADRアーキテクチャ決定記録意思決定ドキュメント技術選定ナレッジ管理
ADRって何のためにあるの?

簡単に言うとこんな感じ!

ADRは「なぜこのアーキテクチャにしたか」を記録するドキュメントだよ!「なんでREST APIじゃなくてgRPCを使ってるの?」「なんでこのDBを選んだの?」という疑問に、後から入ったメンバーでも答えられるように、決定の経緯と理由を残しておくんだ。


ADR(アーキテクチャ決定記録)とは

ADR(Architecture Decision Record:アーキテクチャ決定記録) とは、ソフトウェアアーキテクチャに関する重要な決定を「何を・なぜ・どんな代替案を検討した上で決めたか」を文書化して蓄積する手法です。

2011年にMichael Nygardが提唱し、アジャイル開発コミュニティで広まりました。「なぜそうなっているか」という組織の文脈・歴史を失わないための「意思決定の台帳」です。


ADRのテンプレート

# ADR-001: PostgreSQLを使用する

## ステータス
承認済み(2026-04-13)

## コンテキスト
ユーザーデータと注文データを管理するDBが必要。
JOINの多い複雑なクエリが予想される。

## 決定
PostgreSQLを使用する。

## 根拠
- ACID保証が必要
- JSONBサポートで柔軟なスキーマも扱える
- チームにPostgreSQLの経験がある
- MariaDB・MySQLも検討したが、全文検索・JSONB・拡張性でPostgreSQLが優れる

## 結果
- 肯定的:信頼性・柔軟性が高い
- 否定的:小規模なら他のDBより重い場合も

ADRに記録すべき判断


歴史と背景

  • 2011年:Michael NygardがADRの概念を提唱
  • 2016年以降:Thoughtworksが「Technology Radar」でADRを推奨ツールとして紹介
  • 現在:GitHub/GitLabに直接Markdownで管理するスタイルが主流

関連用語