1.8 KiB
1.8 KiB
Streaming Simplification Rollout And Rollback
Rollout intent
SIMPLE_STREAMING enables the new WebRTC-only control path:
- direct
stream:requestedfan-out to the camera - no media-provider session requirement for request/accept/end
- no
stream:framerelay in the backend gateway - web client uses only WebRTC offer/answer/candidate signaling
Migration notes
- Native mobile is not yet on the WebRTC path.
MobileApp/package.jsondoes not include a native WebRTC dependency such asreact-native-webrtc.MobileApp/README.mddocuments that the mobile app still relies on legacystream:framerelay.- Because of this,
SIMPLE_STREAMINGdefaults tofalse. - Web and backend are prepared for the simplified path now.
Safe enablement sequence
- Deploy backend and web changes with
SIMPLE_STREAMING=false. - Validate legacy mobile behavior still works.
- Validate web camera/client behavior with
SIMPLE_STREAMING=truein a controlled environment. - Add native mobile WebRTC support before changing the default flag value.
Runtime checks when enabling
- Request a stream from a web client to a web camera.
- Confirm the camera receives
stream:requested. - Confirm
stream:startedis emitted after accept. - Confirm WebRTC offer/answer/candidate exchange succeeds.
- Confirm
stream:endedtears down both sides cleanly. - Confirm no
stream:framemessages appear in gateway logs.
Rollback checklist
- Set
SIMPLE_STREAMING=false. - Restart backend instances.
- Verify
/streams/requestcreatesstart_streamcommands again. - Verify mobile frame-relay streaming resumes.
- Re-run web and mobile smoke checks on the legacy path.
Known blocker
Native mobile parity is blocked until a supported RN WebRTC stack is added and wired into MobileApp/src/app-context.tsx.