Published in openvibe-contracts v0.33.0 (docs/adr/ADR-009-live-openre-boundary.md), rendered as is.

ADR-009: Live versus OpenRe boundary

Status: Accepted 2026-09-23. OpenRe.Stream deployed the same day (RTMP ingest + restream; WHIP, SFU and JSMPEG not yet ported). No slot has moved: per-slot cutover waits for the ingest DNS name, the public RTMP port and a broadcaster window.

Context and current evidence

Decision

Alternatives considered

Migration consequences

OpenRe runs in parallel with Live's ingest and takes one protocol at a time (RTMP → WHIP → JSMPEG → SFU), each behind a per-channel switch. Each switch waits for a maintenance window agreed with the active broadcasters. Every stream key is rotated at the RTMP cutover.

Rollback

Per protocol: flip the channel switch back to Live's in-process ingest. Live's ingest code stays until the last protocol has run on OpenRe for two weeks without a regression.

Acceptance tests