How is Phenix able to scale a WebRTC stream to millions of viewers?
WebRTC is an open standard point-to-point transmission protocol. In this way, it is similar to HTTP. Saying WebRTC is not scalable is like saying that HTTP is not scalable. While it is true that the initial WebRTC use case was one-to-one, and few-to-few browser-based video chat applications, the myth of WebRTC not being scalable derives from the initial implementations as chat servers that were not built for scalable one to many streaming. Similar to other standards like HTTP, WebRTC is a building block designed to be used within a website or application and not an application or complete solution to any specific use case by itself.
Phenix's central mission has been to provide high-quality video distribution to millions of concurrent viewers in real-time. In order to achieve these high goals and tight tolerances, we have taken a ground up, end-to-end approach to our system design, video encoding and network architecture. We chose a WebRTC compliant protocol in our overall design because of its widespread browser support, which means viewers don’t have to download or install any sort of software or browser plug-in.
As with other video transport standards such as HLS and DASH, WebRTC does not address many of the critical design decisions required to build a complete video experience. These critical components are left out of the standard entirely, such as encoding configurations, player behavior, bitrate selection and switching logic, startup strategies and more. Even if there was consensus on those player based topics, there is still more required to create a system that can deliver a high-quality video experience to millions of concurrent viewers in real-time, such as real-time automatic scaling to handle flash crowds, real-time encoding, viewer access control, resiliency in the face of outages and degradation and recovery, analytics, advertising and more.
The scalability of Phenix’s platform does not come from the protocol itself, but from the systems built and deployed to accept WebRTC connections and deliver content through them. Our platform is built to scale out horizontally. In order to serve millions of concurrent users subscribing to the same stream in a short period of time, resources need to be provisioned timely or be available upfront. We achieve this cost-effective capability by reserving capacity for each viewer and utilizing our autonomous scaling engine to predict spikes in load as early as possible. The platform can provision new infrastructure resources as needed in seconds.
Our distributed provisioning algorithm is able to allocate capacity for flash crowds of viewers in a short time due to its memory-only based design. All data is stored in memory and cached appropriately in individual nodes so that the system is capable of handling requests proportional to the amount of available resources.
In summary, WebRTC is a great component on which to build and provides significant benefits in browser compatibility, but it's not enough. Phenix’s patented technology and unique system architecture is a result of our end-to-end approach and dedication to solving the problem of delivering high-quality video to broadcast-sized audiences with real-time (< 500ms) latency.