Use Markdown Architectural Decision Records
Sep 24, 2020
ACCEPTED
Petr Ruzicka
Context and Problem Statement¶
We want to record architectural decisions made in this project. Which format and structure should these records follow?
Considered Options¶
- MADR 2.1.2 with Log4brains patch
- MADR 2.1.2 – The original Markdown Architectural Decision Records
- Michael Nygard's template – The first incarnation of the term "ADR"
- Sustainable Architectural Decisions – The Y-Statements
- Other templates listed at https://github.com/joelparkerhenderson/architecture_decision_record
- Formless – No conventions for file format and structure
Decision Outcome¶
Chosen option: "MADR 2.1.2 with Log4brains patch", because
- Implicit assumptions should be made explicit. Design documentation is important to enable people understanding the decisions later on. See also A rational design process: How and why to fake it.
- The MADR format is lean and fits our development style.
- The MADR structure is comprehensible and facilitates usage & maintenance.
- The MADR project is vivid.
- Version 2.1.2 is the latest one available when starting to document ADRs.
- The Log4brains patch adds more features, like tags.
The "Log4brains patch" performs the following modifications to the original template:
- Change the ADR filenames format (
NNN-adr-name
becomesYYYYMMDD-adr-name
), to avoid conflicts during Git merges. - Add a
draft
status, to enable collaborative writing. - Add a
Tags
field.