メインコンテンツまでスキップ

設計提案と判断を残す

設計の記録では、採用した案だけでなく、制約と比較した選択肢を残すと、後から判断を見直しやすくなります。ADR(Architectural Decision Record)は、設計上の判断とその理由を記録する形式の1つです。以下は架空のシステムについての例文です。

提案:選択肢と判断が必要な点を示す​

We propose using a shared cache to reduce repeated database reads.

データベースへの繰り返しの読み取りを減らすため、共有キャッシュの使用を提案します。

速度 1.0 / 自動選択 / en-US

This would reduce duplicate work, but it would add another service to operate.

これにより重複した処理を減らせますが、運用するサービスがもう1つ増えます。

速度 1.0 / 自動選択 / en-US

proposeは提案、wouldは想定する効果を示します。性能を検証していない段階では、確実に速くなると断定せず、評価方法と未確認の点を補います。

判断記録の例​

以下は採用が合意済みという前提の例です。検討中ならStatus: Proposedにし、決定済みの文を提案の文に変えます。

Title: Use a shared cache for report metadata
Status: Accepted
Decision date: November 6, 2026

Context:
Multiple application instances repeatedly read the same metadata.
The data may be up to 60 seconds old under the product requirements.

Options considered:
- Keep database reads: simpler operations, but repeated work remains.
- Use per-instance caches: fewer reads, but each instance keeps a separate copy.
- Use a shared cache: reusable across instances, but adds an operational dependency.

Decision:
We will use a shared cache with a 60-second expiry.

Consequences:
The application must handle cache unavailability.
We accept up to 60 seconds of stale metadata.

Follow-up:
Sam will validate the fallback behavior in staging before rollout.

日本語の意味: 複数のアプリケーションインスタンスが同じメタデータを繰り返し読み取っており、製品要件では最大60秒古いデータを許容します。DBへの読み取りを続ける案、インスタンス別キャッシュ、共有キャッシュを比較し、60秒で期限切れになる共有キャッシュを採用しました。キャッシュ利用不可への対応が必要で、最大60秒の古さを受け入れます。展開前にSamがステージングで代替動作を検証します。

We accept up to 60 seconds of stale metadata.

最大60秒古いメタデータを許容します。

速度 1.0 / 自動選択 / en-US

acceptはこの例での合意を示すもので、すべての用途で古いデータを許容してよいという意味ではありません。代替動作が必要なら、どこまで機能を維持するかやエラーの扱いも別途具体化します。

決定後の変更:前の判断との関係を残す​

This decision supersedes the earlier per-instance cache decision because the deployment now uses multiple instances.

デプロイが複数インスタンス構成になったため、この判断は以前のインスタンス別キャッシュの判断を置き換えます。

速度 1.0 / 自動選択 / en-US

supersedesは以前の判断を置き換えるという意味です。元の記録とのリンクと状態を更新し、以前の判断が存在しなかったように消すのではなく、組織の記録方針に従います。

合意を求める​

Could you confirm whether the proposed consistency trade-off meets the product requirements?

提案している整合性のトレードオフが、製品要件を満たすかご確認いただけますか?

速度 1.0 / 自動選択 / en-US

単にAny thoughts?と聞くより、誰にどの観点を判断してほしいかを絞ります。承認者、期限、未解決の論点も必要に応じて示します。

関連記事・参考資料​