What is an Architecture Decision Record (ADR)?

Architecture Decision Records (ADR) is a way to capture architectural decisions made on a project. It is a way to document the context, the decision, and the consequences of a decision. It is a way to keep track of the architectural choices made on a project and to provide a record of the reasons behind those decisions.

Currently (2024-04), all ADRs are accepted by the repository's owner. However, feel free to discuss them in the Discussions' ADR Category. If it requires a new ADR in a discussion thread, create a new ADR with the adrs new <Title> command and create a pull request. (For more information about the adrs command, see the crates' Repository)

About ADR Status

  • Accepted: We accept the decision and implement it.
  • Proposed: One of us proposes the decision, which is under discussion.
  • Declined: We decline the decision. It should provide a concrete reason for the rejection.
  • Deprecated: The decision is no longer valid. It remains in the repository for historical reasons.
  • Superseded: Another decision supersedes this decision. It should provide a reference to the new decision.

About ADR Sections

  • Title: The title of the ADR.
  • Date: The date when one of us creates the ADR.
  • Status: The status of the ADR. See the above section for more information.
  • Context: The context in which one of us creates the ADR. (Why do we need to make this decision?)
  • Decision: The decision that we make. It usually includes the Pros and Cons of the decision. (What is the decision?)
  • Consequences: The consequences of the decision. (What are the effects and trade-offs of the decision?)