Skip to main content

Architecture Decision Records

Documenting significant architectural decisions in go-mink.


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

IDTitleStatusDate
ADR-001Event Sourcing as Core PatternAccepted2024-01-15
ADR-002PostgreSQL as Primary StorageAccepted2024-01-15
ADR-003CQRS Pattern ImplementationAccepted2024-02-01
ADR-004Command Bus with Middleware PipelineAccepted2024-02-15
ADR-005Three Projection TypesAccepted2024-03-01
ADR-006Optimistic Concurrency ControlAccepted2024-01-15
ADR-007JSON as Default SerializationAccepted2024-01-15
ADR-008BDD Testing StrategyAccepted2024-04-01
ADR-009Sentinel Errors with Typed WrappersAccepted2024-01-20
ADR-010Multi-tenancy via MetadataAccepted2024-02-20

ADR Template

When adding new ADRs, use this template:

---
title: "ADR-XXX: Title"
sidebar_position: 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

StatusMeaning
ProposedUnder discussion, not yet decided
AcceptedDecision has been made and implemented
DeprecatedNo longer recommended, but still supported
SupersededReplaced by another ADR

Contributing

When making significant architectural changes:

  1. Create a new ADR with the next available number
  2. Use the template above
  3. Submit a PR with the ADR for review
  4. Update the index table after acceptance