Our infrastructure includes three tiers. We have a backend, a middleware, and a frontend tier. The backend relates to our on premise edge appliance called the Bridge. The Bridge can be thought of as a DVR, but more appropriately, it is a video buffer appliance that is responsible for pushing video up to the cloud. We also have a custom Database we call the Archiver. Both applications are written in C and revolve around event driven programming with heavy multi-threading. The middleware is primarily written in Python. This tier provides most of the API services that are exposed to the world (see our API Docs). To stay true to our event driven architecture, we use GEvent + Django.

We also have a few services written in Golang that provide middleware functionality. Our transcoding service is written in Golang. Most of the examples in our developer blog posts will be written in Python as it is more widely adopted and understood. However, we will be introducing a Golang developer blog post series to share insights in our experiences with Golang. We believe it is a powerful language for the Cloud and see it as an integral part of our future services.

Our frontend is a javascript application written on top of backbone. It uses all of our API endpoints to give our customers quality service. Any developer using our API can replicate anything we do in the frontend UI. There are no special endpoints that we use to “cheat” that are not exposed to the world.