I reached out to the Openvidu team for commercial support, but since we haven’t heard from them yet, I’ll also ask for the community’s opinion on this.
We’re building an online events webapp that uses OpenVidu as infrastructure, and have landed our first event.
The event will have around 1600 participants, and the goal is to show 20 random participant video streams simultaneously for a few seconds, then disabling their streams and getting another 20, and so on.
We will be using OV Pro for management and autoscaling, and participants can be spread through different sessions, if necessary.
What would the best architecture be for such a scenario?
Can we use one single session for all participants as subscribers and randomly convert them to publishers for streaming a few seconds, then convert them back to subscribers (with OV 2.16)?
Or is it best to spread them through multiple sessions and rely on OV Pro’s scaling to manage all sessions?
The best way to understand the concept of an OpenVidu Session is to see it as a single videoconference room, where people enter and can publish and receive media and messages from other people in the same room. And it is very important to understand the increase of load that can take place when adding new participants to an existing Session. If there are already 100 participants connected and you add a new one, 100 events will be generated and sent, and if the new participant publishes video, then a 100 new streams may potentially be sent to the 100 previous clients.
So the general advise is: create as many Sessions as possible. Small sessions are more efficient than large sessions. If you don’t need a participant to be in the same Session as the rest, then it should not be there. So, answering your question, this is the best choice: To spread them through multiple sessions and rely on OV Pro’s scaling to manage all sessions.
Best regards.
1 Like
Makes absolute sense, Pablo. I was thinking that by having most participants as subscribers at any given moment, we could leverage OV 2.16’s capability to shift users from subs to pubs and the load from those mostly “quiet” subscriber streams would not be much, but we would still have to contend with all the connections created and managing 20x1600 video streams in a single session each time we turn on the cameras. Thank you!