| title | Registro de Decisiones Arquitectónicas Locales |
|---|---|
| type | hub |
| classification | Product ADR |
| owner | Evolith Tracker Team |
Bilingual Navigation: English (this document) · Versión en Español
Este documento sirve como el Hub de Decisiones Arquitectónicas Locales para Evolith Tracker. Documenta las decisiones y desviaciones específicas de este producto satélite frente al Core.
Nota: Las decisiones universales se heredan del Upstream Base (evolith_arch32).
- Upstream base:
https://github.com/beyondnetcode/evolith_arch32 - Última clasificación:
2026-06-11
| ID | Título | Operación | Ref Upstream | ADR Local | Notas |
|---|---|---|---|---|---|
| T-001 | Orquestación de Monorepo con Nx | Adoptar | ADR-0001 | — | Inicializado en src/ utilizando npm workspaces con Nx. |
| T-002 | Adopción de Microfrontends en Fase 1 | Sobrescribir | N/A | T-002 | Desviación de topología para escalabilidad de UI. |
| T-003 | Arquitectura Hexagonal (Ports & Adapters) | Adoptar | ADR-0002 | — | Capa de dominio pura sin dependencias externas. |
| T-004 | TypeScript estricto como lenguaje primario | Adoptar | ADR-0003 | — | strict: true habilitado. |
| T-005 | TypeORM como ORM (Data Mapper pattern) | Adoptar | ADR-0043 | — | Data Mapper elegido sobre Active Record. |
| T-006 | React con Vite como base del frontend | Adoptar | ADR-0044 | — | Topología microfrontends. |
| T-007 | Zustand + TanStack Query (State Management) | Adoptar | ADR-0045 | — | Zustand (cliente) + TanStack Query (servidor). |
| T-008 | Convención de nombres de schema PostgreSQL | Definir | N/A | T-008 | Canónico: tracker_discovery, tracker_design... |
| T-009 | REST + OpenAPI 3.0 como única API en Fase 1 | Definir | N/A | T-009 | GraphQL fuera de alcance en Fase 1. |
| T-010 | Framework de agentes configurable por tenant | Extender | N/A | T-010 | Core usa BMAD internamente; el Tracker es framework-agnóstico. El tenant configura su harness agéntico por fase (bmad, spec-kit, custom). |
| T-011 | Estándar de numeración para épicas e historias | Extender | N/A | T-011 | Extiende upstream US-\d{3} a US-{MOD}-{NNN} con códigos de módulo de 3 letras. Épicas: EPIC-{NNN}. |
| T-012 | Contratos de eventos de dominio en libs/shared/ | Definir | N/A | — | Eventos compartidos (DriftDetectedEvent, ExternalCheckpointRegisteredEvent) se definen como contratos TypeScript en libs/shared/src/domain/events/. Pact tests pendientes (Phase 0). |
| T-013 | Value Object canónico ExternalReference en Shared Kernel | Definir | N/A | — | Unifica shapes dispares en 6 contextos. ExternalReference con system, externalId, url, type, linkedAt, label, metadata. Ubicado en libs/shared/src/domain/external-reference.vo.ts. |
| T-014 | UC-005 dividido en UC-005a y UC-005b | Definir | N/A | — | Plan Release y Authorize Deployment son operaciones distintas con distintos actores y precondiciones. UC-005a (Planning), UC-005b (Execution). |
| T-015 | Core BFF Gateway como único canal de comunicación | Adoptar | ADR-0008/0030/0075 | — | El Tracker se comunica exclusivamente con Evolith Core a través del BFF Gateway (Tier 1 Kong → Tier 2 NestJS BFF). Se prohíben llamadas directas a servicios internos de Core. El Tracker usa el patrón B2B API Gateway (API key). |
Plantilla para nuevos ADRs: Al crear un nuevo documento para "ADR Local", utilice el esquema de Frontmatter definido en los estándares de Evolith Core y ubíquelo en la carpeta de gobernanza correspondiente.