Files
Final-Year-Project/docs/STREAMING_SIMPLIFICATION_ROLLOUT_AND_ROLLBACK.md

1.8 KiB

Streaming Simplification Rollout And Rollback

Rollout intent

SIMPLE_STREAMING enables the new WebRTC-only control path:

  • direct stream:requested fan-out to the camera
  • no media-provider session requirement for request/accept/end
  • no stream:frame relay in the backend gateway
  • web client uses only WebRTC offer/answer/candidate signaling

Migration notes

  1. Native mobile is not yet on the WebRTC path.
  2. MobileApp/package.json does not include a native WebRTC dependency such as react-native-webrtc.
  3. MobileApp/README.md documents that the mobile app still relies on legacy stream:frame relay.
  4. Because of this, SIMPLE_STREAMING defaults to false.
  5. Web and backend are prepared for the simplified path now.

Safe enablement sequence

  1. Deploy backend and web changes with SIMPLE_STREAMING=false.
  2. Validate legacy mobile behavior still works.
  3. Validate web camera/client behavior with SIMPLE_STREAMING=true in a controlled environment.
  4. Add native mobile WebRTC support before changing the default flag value.

Runtime checks when enabling

  1. Request a stream from a web client to a web camera.
  2. Confirm the camera receives stream:requested.
  3. Confirm stream:started is emitted after accept.
  4. Confirm WebRTC offer/answer/candidate exchange succeeds.
  5. Confirm stream:ended tears down both sides cleanly.
  6. Confirm no stream:frame messages appear in gateway logs.

Rollback checklist

  1. Set SIMPLE_STREAMING=false.
  2. Restart backend instances.
  3. Verify /streams/request creates start_stream commands again.
  4. Verify mobile frame-relay streaming resumes.
  5. 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.