What is ADR (Architecture Decision Record)?
A short document that captures a significant software design decision, the context behind it, alternatives considered, and the consequences of the chosen approach. Keeping the reasoning alongside the code helps future contributors understand which constraints shaped the system.
My perspective
In practice
I usually record a decision when it changes a system boundary, introduces a dependency, or creates a trade-off that would be expensive to rediscover. A useful record is brief, dated, and explicit about its status. When the decision changes, a new record supersedes it rather than rewriting the history.