Skip to content

Latest commit

 

History

History
31 lines (25 loc) · 4.37 KB

File metadata and controls

31 lines (25 loc) · 4.37 KB

DECISIONS.md — Evolith Tracker

Navegación Bilingüe: English · Español (este documento)

Propósito

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

Índice de Decisiones Locales

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 para projects discretos
T-002 Adopción de Microfrontends en Fase 1 Sobrescribir N/A T-002 Desviación de la topología base de Fase 1 para permitir escalabilidad concurrente de UI
T-003 Arquitectura Hexagonal (Ports & Adapters) Adoptar ADR-0002 (Core Node.js) Capa de dominio sin imports de NestJS, ORM ni SDKs externos
T-004 TypeScript estricto como lenguaje primario Adoptar ADR-0003 strict: true habilitado; imports sin usar prohibidos
T-005 TypeORM como ORM (Data Mapper pattern) Adoptar ADR-0043 Data Mapper elegido sobre Active Record; no se usa Prisma
T-006 React con Vite como base del frontend Adoptar ADR-0044 React + Vite como tecnología base; topología de microfrontends por T-002/T-002
T-007 Zustand + TanStack Query para state management Adoptar ADR-0045 Zustand para estado de cliente; TanStack Query para estado de servidor
T-008 Convención de nombres de schema PostgreSQL tracker_<context> Definir N/A Canónico: tracker_discovery, tracker_design, tracker_construction, tracker_qa, tracker_release, tracker_governance, tracker_artifacts, tracker_metrics, tracker_integration, tracker_audit. Resuelve conflicto C4/TAD (FINDING-002).
T-009 REST + OpenAPI 3.0 como única superficie API en Fase 1 Definir N/A GraphQL queda fuera de alcance en Fase 1 (FINDING-003). Su adopción en Fase 2 requerirá ADR formal y gobernanza híbrida (R-18).
T-010 Framework de agentes configurable por tenant Extender N/A T-010 BMAD es orquestación; el tenant elige el framework de agentes (bmad, spec-kit, custom) por fase.
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).