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.