Architecture Decision Records (ADRs)¶
Documenting key architectural decisions for the MundiX project.
What are ADRs?¶
Architecture Decision Records capture important architectural decisions along with their context, alternatives considered, and consequences. Each ADR represents a significant decision that affects the system's structure, behavior, or attributes.
All ADRs¶
ADR-001: Authentication System¶
Status: Accepted
Date: 2026-02-03
Decision to implement JWT-based authentication with refresh tokens, bcrypt password hashing, and Redis-based rate limiting.
Key Points: - JWT HS256 for access tokens (15 min expiry) - Refresh tokens with rotation (7 day expiry) - Bcrypt for password hashing (cost 12) - Redis for rate limiting - SELECT FOR UPDATE for race condition protection
ADR Template¶
When creating a new ADR, use the ADR template which includes:
- Title: Short descriptive name
- Status: Proposed | Accepted | Deprecated | Superseded
- Context: What is the issue we're addressing?
- Decision: What did we decide to do?
- Alternatives Considered: What else did we evaluate?
- Consequences: What becomes easier/harder with this decision?
- Related: Links to related ADRs, tasks, or documentation
ADR Workflow¶
graph LR
A[Issue Identified] --> B[Create ADR]
B --> C[Propose Solutions]
C --> D[Team Review]
D --> E{Approved?}
E -->|Yes| F[Status: Accepted]
E -->|No| G[Status: Rejected]
F --> H[Implementation]
H --> I[Documentation]
Last updated: 2026-02-03