dec-0004

Vista generada de dec-0004: Observability es cross-cutting (cada servicio emite OTel spans directamente al collector), explícitamente NO un Authority/servicio separado — corrige al doc 03 que lo listaba como módulo Elysia.

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0004-observability-es-cross-cutting-cada-servicio.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0004-observability-es-cross-cutting-cada-servicio.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-L6
Ficherodocs/decisions/dec-0004-observability-es-cross-cutting-cada-servicio.md

Enmienda a: r06

Por qué importa (del frontmatter del ADR):

Confirmado con grep en el repo: NO existe apps/observability-svc; @styx/observability se importa directamente en apps/{catalog,playback,realtime,sources,workers}-svc/src/service/otel/telemetry.ts (7 archivos) — el patrón cross-cutting descrito en el ADR ya está implementado en código, no solo declarado en prosa.

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: Seguir una reproducción por todos los servicios (especificado)

Texto del ADR

Leído de docs/decisions/dec-0004-observability-es-cross-cutting-cada-servicio.md, el fichero canónico.

Observability es cross-cutting (cada servicio emite OTel spans directamente al collector), explícitamente NO un Authority/servicio separado — corrige al doc 03 que lo listaba como módulo Elysia.

Observability es cross-cutting (cada servicio emite OTel spans directamente al collector), explícitamente NO un Authority/servicio separado — corrige al doc 03 que lo listaba como módulo Elysia.

Por qué pasa gate-3

  • Hard-to-reverse: Revertir requeriría crear observability-svc nuevo, mover telemetry collection de cada servicio al nuevo servicio, cambiar arquitectura de emisión OTel, y añadir boundary nuevo.
  • Surprising sin contexto: El doc 03 listaba observability como módulo Elysia ( Authority). Un ingeniero podría inferir servicio separado. El ADR corrige: 'en microservicios es infraestructura compartida, no dominio'.
  • Trade-off real: Alternativa era observability como servicio separado (Authority). Trade-off: servicio centralizado (coherencia) vs cross-cutting (cada servicio emite directamente). Waxin pick: cross-cutting = menos boundaries.

Procedencia

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