Amazonウェブサービスは、アーキテクチャ決定レコード(ADR)を使うためのガイドを公開した。彼らは、ソフトウェアエンジニアリングチームでADRを採用してレビューするプロセスを推奨している。このプロセスにより、承認、却下、置き換えのADRが決定ログに収集される。
AWSは、アーキテクチャの意思決定を円滑に進め、同じトピックに関する繰り返しの議論を避け、意思決定を効果的に伝達するために、このADRプロセスを提案した。
ADRは、構築しようとしているソフトウェアアーキテクチャに影響を与えるチームの決定を説明する短いドキュメントである。そこには、決定事項だけでなく、その背景と結論も含まれる。ADRのグループは、プロジェクトまたは製品に関する幅広い背景、設計情報、実装の詳細を表す決定ログで構成される。
ADRプロセスの最も一般的な入力は、アーキテクチャ上重要な決定を必要とする機能要件や非機能要件である。そのような決定事項を定めたチームメンバーはだれもが、ADRを作成する必要がある。テンプレートを使うと、ADRの作成がシンプルになり、関連するすべての情報を確実に記録できる。
AWSによると、ADRを作成するチームメンバーはその所有者でもあり、そのコンテンツのメンテナンスと伝達に責任を持つ。最初に、ADR所有者は「提案済み」状態のADRを提供する。これは、レビューの準備ができていることを意味する。次に、所有者はチーム会議を手配して、ADRに対して承認、リクエスト、やり直し、却下のどれを実施するかをレビューして決定する。
チームがADRの改善が必要であると判断した場合、ADRは「提案済み」状態を維持し、所有者と他のチームメンバーが改善に取り組む。そうでなければ、ADRステータスは「承認」または「却下」に変わり、ADRは変更不可能となる。チームがその決定を更新する必要がある場合、そのチームは新しいADRを提案する必要があり、このADRが承認されると、以前のADRに取って代わる。
次のグラフは、ADRの作成、所有権、採用プロセスを示している。
AWSでは、ADRに変更履歴を含めることを勧めている。ADRが承認または却下されると、変更不可と見なされる。チームが以前の決定を置き換える、あるいは更新する新たなADRを承認する場合、ADRの所有者は古いADRの状態を「置き換え」に変更する必要がある。新しいADRが拒否された場合、古いADRを変更する必要はない。
次のグラフは、ADRの更新プロセスを示している。
決定ログは時間の経過とともに大きくなり、チームが行ったすべての決定の履歴を提供する。たとえば、コードやアーキテクチャのレビュー中に、チームは決定ログを引用して、変更が合意された決定に準拠しているかどうか、あるいは新たなADRを作成する必要があるかどうかを検証できる。