Skip to content

Architecture Decision Record Log

Purpose

This file tracks architecture decisions that affect implementation across modules.

Use ADR entries to avoid implicit decisions and reduce design drift.

Status Values

  • Proposed
  • Accepted
  • Superseded
  • Deprecated

ADR Format

Each entry should include:

  • ID: ADR-XXXX
  • Title
  • Status
  • Date
  • Context
  • Decision
  • Consequences
  • Alternatives Considered
  • References to PRD, SRS, SDD, and requirement IDs

Template

md
## ADR-XXXX: <Title>

- Status: Proposed | Accepted | Superseded | Deprecated
- Date: YYYY-MM-DD

### Context — ADR-0001

<problem statement and constraints>

### Decision — ADR-0001

<what was chosen>

### Consequences — ADR-0001

<tradeoffs and expected impact>

### Alternatives Considered — ADR-0001

<option 1, option 2, option 3>

### References — ADR-0001

- ../../product/prd.md
- ../srs.md
- ../sdd.md
- Requirement IDs: FR-..., NFR-..., SR-..., SCR-...

Working Rules

  • A new architecture-impacting PR should include an ADR update when needed.
  • Mark old ADRs as superseded instead of deleting history.
  • Keep ADR decisions implementation-ready and testable.
  • Link ADR decisions to ../../RTM.csv when requirements or coverage are affected.

Accepted ADRs

IDTitleStatusDate
ADR-0001Local Data Engine and Migration StrategyAccepted2026-04-10
ADR-0002Sync Transport, Ordering, and IdempotencyAccepted2026-04-10
ADR-0003Auth Adapter and Session Token ModelAccepted2026-04-10
ADR-0004Client-side encryption approach for sensitive local dataAccepted2026-04-11
ADR-0005Deterministic conflict ordering detailsAccepted2026-04-11
ADR-0006Service-worker cache invalidation strategyAccepted2026-04-11
ADR-0007Keycloak token validation boundaryAccepted2026-04-11
ADR-0008Backend schema and idempotency ledger baselineAccepted2026-04-11
ADR-0009Debian + Docker Compose deployment baselineAccepted2026-04-11
ADR-0010Backup and restore policyAccepted2026-04-11
ADR-0011Phase 2 user-management backend alignmentAccepted2026-04-11
ADR-0012Photo/media policyAccepted2026-04-11
ADR-0013Pagination strategyAccepted2026-04-11
ADR-0014Open Core architecture — plugin-based modulesAccepted2026-07-03
ADR-0015Code Quality Tooling — ESLint + PrettierSuperseded2026-06-20
ADR-0016RBAC Scope System — Permissões com Escopo por EntidadeProposed2026-06-26
ADR-0021EntityRepository — Persistence Abstraction for Worker ServicesAccepted2026-07-04
ADR-0022Multi-Role User Support — roles[], user_roles, and AuthPrincipalAccepted2026-07-05
ADR-0023Server-Authoritative Model — Command Handler Único + Events como AuditoriaProposed2026-07-07
ADR-0024-unified-error-handling.mdUnified Error Handling — Centralized ErrorCode RegistryAccepted2026-07-11
ADR-0025-onboarding-subdomain.mdOnboarding Subdomain — Two Vite Configs vs Separate ProjectAccepted2026-07-13
ADR-0026-deterministic-daily-codes.mdDeterministic Daily Codes for Offline Check-in/Check-outAccepted2026-07-16
ADR-0027-read-mutation-hooks.mdTwo-Hook Read/Mutation Pattern for UI Data AccessAccepted2026-07-23
ADR-0028-persistence-pattern-boundaries.mdPersistence Pattern Boundaries — Three Legitimate StrategiesAccepted2026-07-23
ADR-0029-amend-adr-0023.mdADR-0023 Amendment — CommandContext, Proxy Governance, and EnforcementProposed2026-07-25
ADR-0030-dexie-reversion.mdDexie Reversion — 8 Key Design Decisions (issue #510)Accepted2026-07-25
ADR-0031-two-pass-pbkdf2.mdTwo-Pass PBKDF2 for Free-Tier Password SecurityProposed2026-07-28
ADR-0032-durable-objects-fan-out.mdDurable Objects for Real-Time Event Fan-OutAccepted2026-07-29
ADR-0033-mcp-surface.mdMCP Surface — Agent Integration via Model Context ProtocolProposed2026-07-31
ADR-0034-class-session-relationship.mdClass–Session Relationship in Check-in/Capacity QueriesAccepted2026-08-05

Distribuído sob licença MIT.