Nygard ADR (Classic)
Most PopularThe original ADR format introduced by Michael Nygard. Minimal structure, maximum clarity. Captures the essential elements of a decision without overhead.
# ADR-001: Use PostgreSQL for Primary Database
## Status
Accepted
## Context
We need a relational database for our application.
The team has experience with PostgreSQL and MySQL.
## Decision
We will use PostgreSQL as our primary database.
## Consequences
- Team can leverage existing expertise
- Strong JSON support for flexible schemas
- Need to manage database migrations carefully
MADR (Markdown ADR)
ComprehensiveA structured format that explicitly captures decision drivers, considered options, and detailed pros/cons analysis. Ideal when decisions require formal evaluation of alternatives.
# ADR-002: Select Frontend Framework
## Status
Accepted
## Context and Problem Statement
We need to choose a frontend framework for our new
customer portal. The decision impacts developer
productivity and long-term maintainability.
## Decision Drivers
* Team familiarity
* Performance requirements
* Ecosystem and tooling
## Considered Options
* React
* Vue.js
* Svelte
## Decision Outcome
Chosen option: "Vue.js", because it offers the best
balance of simplicity and team experience.
### Positive Consequences
* Faster onboarding for new developers
* Strong TypeScript integration
### Negative Consequences
* Smaller talent pool than React
Y-Statement ADR
LightweightAn ultra-minimal format that captures a decision in a single structured sentence. Perfect for quick documentation when full ADRs feel like overkill.
# ADR-003: API Authentication Method
## Status
Accepted
## Y-Statement
In the context of securing our public API,
facing the need for stateless authentication,
we decided for JWT tokens with short expiry
and against session-based authentication,
to achieve scalability across multiple services,
accepting the complexity of token refresh logic.