# Decisions ## Overview This directory contains all the Architectural Decision Records (**ADRs**) associated with this repository. See: * [decision_template.md](decision_template.md) for the default decision template. * [ADR-0000.md](ADR-0000.md) for an example of a decision (i.e. the decision to start using ADRs in this way) * [VERSES Architecture Best Practices](https://verses.atlassian.net/wiki/spaces/Architecture/pages/634748987/VERSES+Architecture+Best+Practices) for more details about our best practices * [Using a Monolith for Genius Core Clients in Various Languages](ADR-0003.md) for the decision to use a monolith for the core functionality of the Genius DB clients in various languages instead of separate repositories. ### Nomenclature: ADs, ASRs, ADRs See [adr.github.io](https://adr.github.io) for an overview of ADR. Briefly: An **Architectural Decision (AD)** is a justified design choice that addresses a functional or non-functional requirement that is architecturally significant. An **Architecturally Significant Requirement (ASR)** is a requirement that has a measurable effect on the architecture and quality of a software and/or hardware system. An **Architectural Decision Record (ADR)** captures a single AD and its rationale. The collection of **ADRs** created and maintained in a project constitute its decision log. All these are within the topic of **Architectural Knowledge Management (AKM)**, but **ADR** usage can be extended to design and other decisions (“any decision record”). ## process Whenever this package is updated to incorporate an AD, we document it as part of the related PR as follows: 1) copy [decision_template.md](decision_template.md) to a new file, following the naming convention of `ADR-.md` (e.g. `ADR-0200.md` if the last record is `ADR-0199.md`) 2) fill out the template 3) make your changes, submit and (after approval) merge