Architecture Decision Records
Documenting significant architectural decisions in go-mink.
Table of contents
What are ADRs?
Architecture Decision Records (ADRs) capture important architectural decisions made during the development of go-mink. Each ADR describes:
- Context: The situation and forces at play
- Decision: What we decided to do
- Consequences: The results of the decision (both positive and negative)
ADR Index
| ID | Title | Status | Date |
|---|---|---|---|
| ADR-001 | Event Sourcing as Core Pattern | Accepted | 2024-01-15 |
| ADR-002 | PostgreSQL as Primary Storage | Accepted | 2024-01-15 |
| ADR-003 | CQRS Pattern Implementation | Accepted | 2024-02-01 |
| ADR-004 | Command Bus with Middleware Pipeline | Accepted | 2024-02-15 |
| ADR-005 | Three Projection Types | Accepted | 2024-03-01 |
| ADR-006 | Optimistic Concurrency Control | Accepted | 2024-01-15 |
| ADR-007 | JSON as Default Serialization | Accepted | 2024-01-15 |
| ADR-008 | BDD Testing Strategy | Accepted | 2024-04-01 |
| ADR-009 | Sentinel Errors with Typed Wrappers | Accepted | 2024-01-20 |
| ADR-010 | Multi-tenancy via Metadata | Accepted | 2024-02-20 |
ADR Template
When adding new ADRs, use this template:
---
layout: default
title: "ADR-XXX: Title"
parent: Architecture Decision Records
nav_order: XXX
---
# ADR-XXX: Title
| Status | Date | Deciders |
|--------|------|----------|
| Proposed/Accepted/Deprecated/Superseded | YYYY-MM-DD | Team |
## Context
What is the issue that we're seeing that is motivating this decision?
## Decision
What is the change that we're proposing and/or doing?
## Consequences
### Positive
- Benefit 1
- Benefit 2
### Negative
- Drawback 1
- Drawback 2
### Neutral
- Side effect 1
## Alternatives Considered
### Alternative 1
Description and why it was rejected.
## References
- Link 1
- Link 2
Status Definitions
| Status | Meaning |
|---|---|
| Proposed | Under discussion, not yet decided |
| Accepted | Decision has been made and implemented |
| Deprecated | No longer recommended, but still supported |
| Superseded | Replaced by another ADR |
Contributing
When making significant architectural changes:
- Create a new ADR with the next available number
- Use the template above
- Submit a PR with the ADR for review
- Update the index table after acceptance
Table of contents
- ADR-001: Event Sourcing as Core Pattern
- ADR-002: PostgreSQL as Primary Storage
- ADR-003: CQRS Pattern Implementation
- ADR-004: Command Bus with Middleware Pipeline
- ADR-005: Three Projection Types
- ADR-006: Optimistic Concurrency Control
- ADR-007: JSON as Default Serialization
- ADR-008: BDD Testing Strategy
- ADR-009: Sentinel Errors with Typed Wrappers
- ADR-010: Multi-tenancy via Metadata