mirror of
https://github.com/opencloud-eu/opencloud.git
synced 2025-12-16 17:45:39 -06:00
Architecture Decision Records (ADRs)
Purpose
This folder contains Architecture Decision Records (ADRs) for the OpenCloud related topics. ADRs capture important architectural decisions, their context, alternatives, and rationale.
They help us:
- Document the reasoning behind significant technical choices.
- Share knowledge and context with current and future team members.
- Ensure transparency and continuity in our architectural evolution.
Why Use ADRs?
ADRs provide a structured way to record, discuss, and find architectural decisions over time. They make it easier to:
- Understand why certain approaches were chosen.
- Avoid revisiting previous discussions without context.
- Onboard new contributors efficiently.
When to Create an ADR
Not every technical or architectural decision needs a dedicated ADR. Use an ADR to document decisions which are significant, such as:
- It substantially affects the architecture, design, or direction of OpenCloud.
- It involves trade-offs between multiple options.
- It needs Team consensus or input from multiple stakeholders.
Writing ADRs
- Location: Store all ADRs as Markdown files in this folder.
- Format: Use Markdown.
- Naming: Adhere to the naming convention, e.g.,
0001-descriptive-title.md.
ADR Template
---
title: "Some Descriptive Title"
---
* Status: proposed / accepted / deprecated / superseded
* Deciders: [@user1, @user2]
* Date: YYYY-MM-DD
Reference: (link to relevant epic, story, issue)
## Context and Problem Statement
Describe the background and why this decision is needed.
## Decision Drivers
Describe the criteria that explains why this decision has to be made.
## Considered Options
Describe single or multiple options that were considered or could be considered.
## Decision Outcome
Describe the chosen option and why it was selected.
### Implementation Steps
Describe the steps needed to implement the decision.
Process
New ADRs
- Write a new ADR as a Markdown file.
- Submit it via pull request for review.
- Decision is made collaboratively, details will be discussed in the PR, which can lead to further changes.
- Update the ADR status once a decision is reached.
- Reference ADRs in code, documentation, or issues where relevant.
Updating ADRs
- If an ADR needs to be updated, create a new ADR that references the original.
- Follow the same process as for new ADRs.
- Once accepted, update the status of the original ADR and reference that new ADR.