dec-0036

Vista generada de dec-0036: Xtream-directo en la app Swift

ImplementadoSin versión del tren todavía· generada desde docs/decisions/dec-0036-xtream-directo-app-swift.md
track/docsdec-0124track/docs:DC10

Vista generada desde docs/decisions/dec-0036-xtream-directo-app-swift.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 legadar27-L6
Ficherodocs/decisions/dec-0036-xtream-directo-app-swift.md

Enmendado o sustituido por: r48

Por qué importa (del frontmatter del ADR):

roadmap.spec.yml F5 (refs incluye r27); ADR §6 'Impacta scope de F5'

Nodos del roadmap que lo citan en refs: ninguno.

Páginas de la documentación que lo citan: ninguna todavía.

Texto del ADR

Leído de docs/decisions/dec-0036-xtream-directo-app-swift.md, el fichero canónico.

Xtream-directo en la app Swift

Xtream-directo en la app Swift = first-class permanente, peer del modo Styx (NO fallback); coste asumido de 2 clientes Xtream (app Swift + sources-svc adapter).

Por qué pasa gate-3

  • Hard-to-reverse: Requiere degradar Xtream a fallback en app Swift y re-arquitecturar sources-svc. Cambio ROMPIENTE en cliente battle-tested.
  • Surprising sin contexto: Un ingeniero NO inferiria por que Xtream es first-class peer (no fallback) ni que la razon es que la app funciona aunque Styx este caido. Desvio deliberado de waxin en Ronda 1.
  • Trade-off real: Alternativa rechazada: Xtream como fallback temporal. Se rechazo por: (1) app battle-tested funciona standalone, (2) no tirar codigo probado, (3) independencia de servicio. Coste visible: mantener 2 clientes (Swift + adapter).

Procedencia

Split de docs/decisions/r27-nodes-nats-plugins-acquisition-2026-06-21.md (lock r27-L6) durante PASO 7 (2026-07-16). Ver el fichero padre para el contexto completo del pack original.