dec-0005

Vista generada de dec-0005: NATS JetStream como bus event-driven obligatorio para TODA comunicación inter-servicio (commands request/reply + events pub/sub), sobre Valkey Streams/Kafka/RabbitMQ/gRPC directo

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0005-nats-jetstream-como-bus-event-driven.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0005-nats-jetstream-como-bus-event-driven.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 legadaL1
Ficherodocs/decisions/dec-0005-nats-jetstream-como-bus-event-driven.md

Enmendado o sustituido por: r20

Por qué importa (del frontmatter del ADR):

CLAUDE.md ('Bus NATS JetStream: cmd.<domain>.<action>...'), roadmap.spec.yml linea 872 (extends r20/r27/r28), r17/r19/r20/r23/r27/r41/r60 lo referencian y extienden, packages/api-contracts/src/subjects.ts implementa cmd./qry./evt. con regex de validacion, 29 archivos en apps/*-svc usan subjects cmd./evt. (cmd-server.ts en workers-svc, bus.ts en playback-svc, events.ts en catalog-svc/sources-svc)

Nodos del roadmap que lo citan en refs: ninguno.

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

Texto del ADR

Leído de docs/decisions/dec-0005-nats-jetstream-como-bus-event-driven.md, el fichero canónico.

NATS JetStream como bus event-driven obligatorio para TODA comunicación inter-servicio (commands request/reply + events pub/sub), sobre Valkey Streams/Kafka/RabbitMQ/gRPC directo

NATS JetStream como bus event-driven obligatorio para TODA comunicación inter-servicio (commands request/reply + events pub/sub), sobre Valkey Streams/Kafka/RabbitMQ/gRPC directo

Por qué pasa gate-3

  • Hard-to-reverse: Cambiar el bus requeriría reescribir todos los servicios y toda la topología de comunicación; es la columna vertebral de r17 (microservicios)
  • Surprising sin contexto: Sin el ADR, un ingeniero competente no sabría por qué NATS y no Kafka/RabbitMQ/gRPC directo; la elección de tecnología no es inferible del código
  • Trade-off real: Tabla explícita (líneas 91-99) comparando NATS vs Valkey Streams vs Kafka vs RabbitMQ vs gRPC directo con veredicto y razón para cada opción; 'bleeding-edge, persistence nativa, streams + consumers + subjects jerárquicos, request/reply built-in, footprint chico' vs overkill/operacionalmente pesado/modelo pub/sub+request/reply mezclado

Procedencia

Split de docs/decisions/r18-transporte-inter-servicio-bus-2026-06-20.md (lock L1) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.