This is a fascinating article. Some innovative stuff to deal with the difficult problem of how to innovate without breaking existing customers.<p>Some highlights:<p>* when a client first makes requests store their version, so that they don't have to worry about it
* decouple features from versions, by using 'gates' (allowing for far more versions than would otherwise be possible)