Ir para o conteúdo

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:

  1. Title: Short descriptive name
  2. Status: Proposed | Accepted | Deprecated | Superseded
  3. Context: What is the issue we're addressing?
  4. Decision: What did we decide to do?
  5. Alternatives Considered: What else did we evaluate?
  6. Consequences: What becomes easier/harder with this decision?
  7. 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