every.channel/evolution/proposals/ECP-0072-cmaf-seedbox-invariant.md

1.3 KiB

ECP-0072: CMAF Seedbox Invariant For Relay Archive

Context

Archive replay currently stores and serves relay groups exactly as received, but many existing broadcasts were published in legacy container mode. Those bytes are not browser-HLS compatible, so archive playback fails despite a valid timeline and object store.

Decision

Make wt-publish default to CMAF passthrough (--passthrough=true) so:

  • relay subscribers and archive workers observe the same CMAF fragment bytes (moof+mdat);
  • archive replay can serve those exact bytes without re-encoding;
  • the archive acts as a history seedbox of previously played chunks.

Update the NixOS module default services.every-channel.ec-node.passthrough = true to keep host deployments aligned with the seedbox invariant.

Rationale

  • Zero-transform archive path is simpler and more auditable.
  • Exact-byte retention avoids drift between live and replay.
  • Browsers can play CMAF fragments via standard HLS tooling; no custom legacy converter is required for new streams.

Reversibility

  • Operators can explicitly set passthrough = false per host to revert to legacy framing.
  • Existing archived legacy data remains readable for timeline/index use, but may require separate migration tooling for browser playback.