dec-0002

Vista generada de dec-0002: Topología split-duro

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0002-topologia-split-duro.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0002-topologia-split-duro.md. No se edita a mano: bun run docs:gen la regenera y bun run docs:check falla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.

CampoValor
EstadoLOCKED (migrado de un rNN por gate-3: el fichero no declara estado)
Referencia legadar17-L1
Ficherodocs/decisions/dec-0002-topologia-split-duro.md

Enmienda a: r06

Por qué importa (del frontmatter del ADR):

apps/{identity,catalog,playback,sources,workers,realtime,extensions}-svc existen hoy en el repo (verificado con ls); TKT-020 (F0.A.3 skeletons) status:done, closedBy ef20293, closedAt 2026-07-13; roadmap.spec.yml r17 status:locked, extends[] de r25/r27/r59/r60/r61; TKT-020/TKT-038/TKT-052/TKT-050 dependsOn explícito de r17.

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: Planos y servicios (implementado)

Texto del ADR

Leído de docs/decisions/dec-0002-topologia-split-duro.md, el fichero canónico.

Topología split-duro

Topología split-duro: 7 servicios Bun (identity/catalog/playback/sources/workers/realtime/extensions) + daemon Zig + delivery-edge + infra (~13 contenedores en dev); NUNCA existe modo monolito ni flag para correrlo en un binario único.

Por qué pasa gate-3

  • Hard-to-reverse: Revertir requeriría re-architecturar todo el sistema: mover state boundaries, cambiar patrón de comunicación (NATS IPC vs in-process), reorganizar deployments, y revisar todas las integraciones entre servicios.
  • Surprising sin contexto: Un ingeniero competente NO inferiría esta topología sin el ADR. Podría asumir monolito modular (r06) u otras alternativas. El ADR superset explícitamente r06.
  • Trade-off real: Se rechazó explícitamente la alternativa 'modular monolith primero' (r06) con costes visibles: peaje operacional (9+ procesos en dev) vs fronteras limpias desde día 1. Waxin aceptó el trade-off conscientemente (blast radius cero, lab personal).

Procedencia

Split de docs/decisions/r17-microservicios-split-duro-2026-06-20.md (lock r17-L1) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.