TokShow: Building a large scale video comms platform

There are a number of huge challenges being a platform company, as the product we build has to work under many conditions. One of those major challenges is the issue of scaling a realtime communications platform to support both one-to-one conversations and also 5000+ participant talk shows. Now some people might say “Doesn’t YouTube already let thousands of people view a video?” Yes, but the difference is that YouTube is about consuming and OpenTok is about face-to-face.

Because of this, issues such as high latency are much more serious (i.e. even 500ms of latency can interrupt the natural flow of a conversation). If you’ve ever seen a TV news correspondent speaking from abroad, you know how disruptive it can be. In a recent large event with the band Mindless Behavior, we had the band talk with a series of fans while thousands of other fans watched. What makes OpenTok different than other live streaming solutions is that any of the participants could suddenly be brought on stage, which again raises the issue of latency.

Typically streaming video solutions scale through the use of repeaters (e.g. live streaming CDN’s), and here at TokBox we employ a very similar solution. The problem with doing this is that repeaters (or edge boxes) add latency, sometimes on the order of a second or more. Therefore if a viewer is subscribing on an edge and is suddenly brought on stage, they could be out of sync with the band by several seconds! To address this, we introduced mechanism’s to “migrate” users from edge’s to the same machine that the band was publishing on (the origin). Once on the origin, both the band and fan experience lag of only one machine (rather than additional hops through an edge). This action happens underneath the covers and is something the OpenTok developer doesn’t need to worry about themselves.

This was just one step in our ongoing work to create a scalable platform that enables any application a developer could dream of without sacrificing quality or ease of use.