Skip to content

ADRXX Template

Tobias edited this page Jan 10, 2023 · 1 revision

Important, expensive, large scale or risky architecture decisions including rationales. With "decisions" we mean selecting one alternative based on given criteria.

Please use your judgement to decide whether an architectural decision should be documented here in this central section or whether you better document it locally (e.g. within the white box template of one building block).

Avoid redundancy. Refer to section 4, where you already captured the most important decisions of your architecture.

Stakeholders of your system should be able to comprehend and retrace your decisions.

Various options:

  • ADR (Documenting Architecture Decisions) for every important decision
  • List or table, ordered by importance and consequences or:
  • more detailed in form of separate sections per decision

Short title of solved problem and solution

  • Status: {proposed | rejected | accepted | deprecated | … | superseded by ADR-0005}
  • Deciders: {list everyone involved in the decision}
  • Date: {YYYY-MM-DD when the decision was last updated}

Technical Story: {description | ticket/issue URL}

Context and Problem Statement

{Describe the context and problem statement, e.g., in free form using two to three sentences. You may want to articulate the problem in form of a question.}

Decision Drivers

  • {driver 1, e.g., a force, facing concern, …}
  • {driver 2, e.g., a force, facing concern, …}

Considered Options

  • option 1
  • option 2}
  • option 3

Decision Outcome

Chosen option: "{option 1}", because {justification. e.g., only option, which meets k.o. criterion decision driver | which resolves force {force} | … | comes out best (see below)}.

Positive Consequences

  • {e.g., improvement of quality attribute satisfaction, follow-up decisions required, …}

Negative Consequences

  • {e.g., compromising quality attribute, follow-up decisions required, …}
Pros and Cons of the Options
option 1

{example | description | pointer to more information | …}

  • Good, because {argument a}
  • Good, because {argument b}
  • Bad, because {argument c}
option ...

{example | description | pointer to more information | …}

  • Good, because {argument a}
  • Good, because {argument b}
  • Bad, because {argument c}

Links

Clone this wiki locally