Initial ADR directory, templates, and ADR 001
This commit is contained in:
parent
7fc2ed61d7
commit
6d75b69a5c
|
@ -0,0 +1,27 @@
|
||||||
|
# Architecture Decision Records (ADR)
|
||||||
|
|
||||||
|
This is a location to record all high-level architecture decisions in the Cosmos
|
||||||
|
SDK project.
|
||||||
|
|
||||||
|
You can read more about the ADR concept in this [blog post](https://product.reverb.com/documenting-architecture-decisions-the-reverb-way-a3563bb24bd0#.78xhdix6t)
|
||||||
|
with a more detailed explanation [here](http://thinkrelevance.com/blog/2011/11/15/documenting-architecture-decisions).
|
||||||
|
|
||||||
|
An ADR should provide:
|
||||||
|
|
||||||
|
- Context on the relevant goals and the current state
|
||||||
|
- Proposed changes to achieve the goals
|
||||||
|
- Summary of pros and cons
|
||||||
|
- References
|
||||||
|
- Changelog
|
||||||
|
|
||||||
|
You can see the template [here](./adr.template.md).
|
||||||
|
|
||||||
|
Note the distinction between an ADR and a spec. The ADR provides the context,
|
||||||
|
intuition, reasoning, and justification for a change in architecture, or for the
|
||||||
|
architecture of something new. The spec is much more compressed and streamlined
|
||||||
|
summary of everything as it stands today.
|
||||||
|
|
||||||
|
If recorded decisions turned out to be lacking, convene a discussion, record the
|
||||||
|
new decisions here, and then modify the code to match.
|
||||||
|
|
||||||
|
Note the context/background should be written in the present tense.
|
|
@ -0,0 +1,43 @@
|
||||||
|
# ADR 001: Cosmos SDK Signed Messages
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
* {date}: {changelog}
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
> This section describes the forces at play, including technological, political, social, and project local. These forces are probably in tension, and should be called out as such. The language in this section is value-neutral. It is simply describing facts.
|
||||||
|
|
||||||
|
{context body}
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
> This section describes our response to these forces. It is stated in full sentences, with active voice. "We will ..."
|
||||||
|
|
||||||
|
{decision body}
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
> A decision may be "proposed" if the project stakeholders haven't agreed with it yet, or "accepted" once it is agreed. If a later ADR changes or reverses a decision, it may be marked as "deprecated" or "superseded" with a reference to its replacement.
|
||||||
|
|
||||||
|
{Deprecated|Proposed|Accepted}
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
> This section describes the resulting context, after applying the decision. All consequences should be listed here, not just the "positive" ones. A particular decision may have positive, negative, and neutral consequences, but all of them affect the team and project in the future.
|
||||||
|
|
||||||
|
### Positive
|
||||||
|
|
||||||
|
{positive consequences}
|
||||||
|
|
||||||
|
### Negative
|
||||||
|
|
||||||
|
{negative consequences}
|
||||||
|
|
||||||
|
### Neutral
|
||||||
|
|
||||||
|
{neutral consequences}
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* {reference link}
|
|
@ -0,0 +1,43 @@
|
||||||
|
# ADR {ADR-NUMBER}: {TITLE}
|
||||||
|
|
||||||
|
## Changelog
|
||||||
|
|
||||||
|
* {date}: {changelog}
|
||||||
|
|
||||||
|
## Context
|
||||||
|
|
||||||
|
> This section describes the forces at play, including technological, political, social, and project local. These forces are probably in tension, and should be called out as such. The language in this section is value-neutral. It is simply describing facts.
|
||||||
|
|
||||||
|
{context body}
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
> This section describes our response to these forces. It is stated in full sentences, with active voice. "We will ..."
|
||||||
|
|
||||||
|
{decision body}
|
||||||
|
|
||||||
|
## Status
|
||||||
|
|
||||||
|
> A decision may be "proposed" if the project stakeholders haven't agreed with it yet, or "accepted" once it is agreed. If a later ADR changes or reverses a decision, it may be marked as "deprecated" or "superseded" with a reference to its replacement.
|
||||||
|
|
||||||
|
{Deprecated|Proposed|Accepted}
|
||||||
|
|
||||||
|
## Consequences
|
||||||
|
|
||||||
|
> This section describes the resulting context, after applying the decision. All consequences should be listed here, not just the "positive" ones. A particular decision may have positive, negative, and neutral consequences, but all of them affect the team and project in the future.
|
||||||
|
|
||||||
|
### Positive
|
||||||
|
|
||||||
|
{positive consequences}
|
||||||
|
|
||||||
|
### Negative
|
||||||
|
|
||||||
|
{negative consequences}
|
||||||
|
|
||||||
|
### Neutral
|
||||||
|
|
||||||
|
{neutral consequences}
|
||||||
|
|
||||||
|
## References
|
||||||
|
|
||||||
|
* {reference link}
|
Loading…
Reference in New Issue