So we finally made it across the finish line. Well, not “the” finish line, but at least some line where we can take a pit stop, get some fluids, change the tires, etc.
We’re really excited because we’d set the goal of hitting public beta for MAX in the spring of this year, but the amount of work it took to get there was pretty intense. Some people have asked “why did it take so long – you revealed this like a year ago!” Well, yes, the backbone has been more or less solid for a year (a good thing!), but more stuff needs to be accomplished than you’d think in order for developers to really benefit, and we wanted to do a lot before Public Beta. To wit :
:: P2P AV Stream support. We knew we wanted to be the first place developers could take advantage of direct client to client audio/video streaming. So we managed to finagle some pre-pre-pre-beta, super-advanced technology from the FMS team, and built a mini-cluster of these servers for devs to pound on. At the same time, we wrote a set of algorithms that make P2P/Hub and Spoke transitions on the fly as network and client conditions change. I’ll talk more about this in a future post…
:: Polishing the SDK surface area. We wanted to make sure the API surface was in a reasonably mature state, and not subject to huge changes after public release. Looking back from last spring, there were at least 3 major overhauls to the API, to allow stuff like multiple simultaneous sessions per client, private stream groups, and a move from a 2-project codebase to a 1-project codebase, so that devs would have a hope of being able to browse our source code (yes, source is included!).
:: Documentation and samples. We were lucky to get the assistance of a really great tech writer (thanks Ben!). who produced a 59 page tome on all things developing with Cocomo. Not only this, he spent more time than I ever would have scrubbing ASDoc comments for the Cocomo API Reference. Working with Ben was a pleasure, but time-consuming too – that guy has exacting standards, and it shows in the quality of the docs. Everyone on the team also spent time writing sample apps, resulting in a nice library of 15 apps – we’re still going to add more!
:: Metrics and Quotas. We know that we want to keep track of usage, and be able to enforce quotas on that usage, so that no one beta account could take over our cluster and freeze everyone else out. We also wanted developer reports that would let devs see how much they’d used.
:: Provisioning and Authentication APIs. We needed an HTTP based API so that developers could use their own servers to spawn rooms on the fly, and authenticate their users *without Cocomo needing to know anything about those users*. We (including the extended team of Sean Corfield, thanks Sean!) produced sample scripts in 5 languages for showing how this can be done.
:: Developer tools. We built the Cocomo Dev Console as well as the Local Connection Server, so that developers could introspect their rooms and develop Cocomo apps on an airplane (! – because of course this is where most work gets done…).
:: Battle-testing the service. We’ve built a suite of testing tools that allows us to POUND on the service, pushing it further than we’d ever seen in the wild. We’ve found several issues over the course of testing, and are still working to figure out exactly where our capacity limits are, and how to raise them =).
:: Releasing a couple of our own products on the thing. Both ConnectNow and Acrobat 9 use Cocomo in the real world. This makes sure that Adobe is actually committed to the infrastructure, since, well, Acrobat isn’t going anywhere =).
:: Finding a few kickass partners and working with them to see exactly what needs are there. Acesis and Broadchoice are both using Cocomo, and we have another couple of really cool customers who aren’t ready to talk publicly, yet…
Phew. I came into work today a little more refreshed, after feeling really exhausted earlier from all the MAX hoopla. But after detailing all that we did this year, man, I think I need to go back to bed.
Stay tuned – more to come next week.