Skip to content

DX-ADR-[NUMBER]: [Title of Decision]

Metadata

  • Created By: [Name]
  • Date: [YYYY-MM-DD]
  • Status: [Draft | Accepted | Rejected | Deprecated by DX-ADR-YYY | Supersedes DX-ADR-XXX]
  • Decision Maker(s): [Name(s)]
  • Stakeholders: [Name(s) / Role(s), only used for decisions which affect a subset of communities]

Abstract

A short (~200 word) summary of the decision being made and why it matters.

Motivation

Why is this decision needed now? What problem or limitation in the current system does it address? What are the functional and non-functional drivers?

Specification

Describe the chosen solution in concrete detail — APIs, interfaces, configuration, behaviour. For the task system: what does the base task interface look like? How are tasks dispatched, retried, monitored? This is the "what we're building" section.

Rationale

Explain why the chosen design looks the way it does. Why these trade-offs? Why this level of abstraction? Connect specific design choices back to the drivers in Motivation.

Rejected Ideas

Why were the non-chosen options ultimately set aside? This is distinct from the pros/cons listing above — it's the narrative of what tipped the scales. Include any ideas that came up in discussion but weren't even promoted to full options, and why.

Open Issues

Any points still being decided or discussed. Remove this section once the status moves to Accepted.