« Random Compiler Thoughts, Part II | Main | Learning About Flex 4 Through Commits »

The Making of a Platform with Adobe Technology

Brightcove is using Flex and Flash in many significant ways to make a video platform, and I thought it'd be interesting to some people to share some of the uses. I can't share a lot, but I can take the information from a keynote presentation by Ashley Streb at Webmaniacs 2008. You can also see the full presentation embedded at the end of this post.

The scale of things at Brightcove is something that drives a lot of what happens with Flex and Flash at Brightcove. From the slides:

135 Million Unique Users/month (as of 6 - 9 months ago)
1.5 Petabytes (1,500,000 GBs) of media delivered/month
Thousands of platform users, hundreds of major media brands, 
  50 television networks, newspaper and magazine publishers, 
  and all the major record labels in the US.

All of these users and media go through the Brightcove players, which have AS1, AS2, and AS3 versions in hundreds of different permutations. Some of the data on the AS3 versions from the slides:

ActionScript 3, AVM2
AMF3 as client/server communication protocol
~70K LOC written

There's nothing too surprising in there, but there's some more interesting size information in the slides. Keeping down the size helps the performance, and there's been a lot of work by Todd Yard (and others) on making the players faster and faster for the 135 million (or whatever the current number is) users.

The players and videos are managed by manager applications that were created with Flex. When some of your customers have thousands of videos and thousands of playlists of videos, the management becomes... tricky. The slides touch on some of the ways this happens:

Structure server API; initial view, lazy load, different types of DTOs
Make clients intelligent about their needs 
Datagrid presentation strategies

I'm sure there's some questions on some of the above, like the datagrid presentation strategies, but I'll have to expand on them another day. These business applications have some other data points on them that I can share:

Flex 2, AVM2
Flex vs. ActionScript vs. DHTML
AMF3 as client/server communication protocol
Cairngorm as micro-architecture
~100K LOC written, 150 Commands
FlexBuilder as IDE/Developer Tool
FlexUnit for unit testing
Homegrown integration tool

There's a lot more in the slides below, including info about Brightcove as a service, code layout, the use of Scrum, our Java setup, etc. If you'd like to hear more about any of this, just comment or send me an email.