Skip to content

Template 03

ADR-NNNN: Title of the Architecture Decision

Status

Status: proposed | Date: YYYY-MM-DD

Deciders: @person1, @person2

Technical Story: [JIRA-123](https://jira.example.com/browse/JIRA-123)

Business Story: [BIZ-456](https://jira.example.com/browse/BIZ-456)


Context and Problem Statement 🤔

Provide a clear, concise description of the problem or context that necessitates this architectural decision. What challenge are we addressing? Why is this decision important?

  • Use bullet points for clarity if needed.
  • Include any relevant background information or constraints.

Decision Drivers 🚀

List the key factors, constraints, or requirements that influenced this decision. These are the "why" behind the decision.

  • Driver 1: Description of the driver (e.g., performance, scalability, cost, etc.).
  • Driver 2: Description of another driver.
  • Driver 3: And so on...

Considered Options 🔍

List the options that were considered to address the problem. For each option, provide a brief description and, optionally, pros and cons.

Option 1: {OPTION_1_NAME}

  • Description: Brief description of the option.
  • Pros ✅:
    • Advantage 1.
    • Advantage 2.
  • Cons ❌:
    • Disadvantage 1.
    • Disadvantage 2.

Option 2: {OPTION_2_NAME}

  • Description: Brief description of the option.
  • Pros ✅:
    • Advantage 1.
    • Advantage 2.
  • Cons ❌:
    • Disadvantage 1.
    • Disadvantage 2.

Option 3: {OPTION_3_NAME}

  • Description: Brief description of the option.
  • Pros ✅:
    • Advantage 1.
    • Advantage 2.
  • Cons ❌:
    • Disadvantage 1.
    • Disadvantage 2.

Decision Outcome ✅

State the chosen option and provide a clear rationale for why it was selected. Highlight how it aligns with the decision drivers.

Chosen Option: {CHOSEN_OPTION_NAME} Rationale:

  • Reason 1 (e.g., best aligns with performance goals).
  • Reason 2 (e.g., cost-effective in the long term).
  • Reason 3 (e.g., reduces technical debt).

Implications 🌟

Describe the consequences of this decision, both positive and negative. Include any trade-offs, risks, or future considerations.

  • Positive Implications 😊:
    • Benefit 1.
    • Benefit 2.
  • Negative Implications ⚠️:
    • Risk or trade-off 1.
    • Risk or trade-off 2.
  • Mitigations 🛡️:
    • How risks or trade-offs will be addressed.

Implementation Notes 🛠️

Provide any technical details, guidelines, or steps required to implement this decision. Include code snippets, diagrams, or references to relevant documentation if applicable.

Python
# Example code snippet (if relevant)
def example_function():
    pass

Implementation Tip

Consider using {TOOL/FRAMEWORK} to streamline the implementation process.


Monitoring and Validation 📊

Explain how the success of this decision will be measured or validated. Include metrics, KPIs, or monitoring strategies.

  • Metric 1: Description of what will be measured.
  • Metric 2: Description of another metric.
  • Validation Plan: How and when the decision will be reviewed.

References and Resources 📚

List any references, tools, or resources that were used to inform this decision or are relevant for implementation.


Revision History ✍️

Track changes to this ADR over time, especially if the status or decision is updated.

Date Status Notes Author
{DATE} {STATUS} Initial draft created {AUTHOR}
{DATE} {STATUS} Updated decision rationale {AUTHOR}

Feedback Welcome

This ADR is a living document. If you have feedback, suggestions, or concerns, please raise an issue or PR in the repository. 🙌