Fork me on GitHub

lmergen: upgrades we just deploy as often as we can - often we have to coordinate deployment of two services together... it's not usually a big deal - but you do have to think about it. backwards incompatible changes aren't really that different - in that I think everything just needs to be looked at on a case by case basis... We're about to replace a major component with a new version which significantly changes the api... its been about 7 months work and has meant maintaining a branch in 3 components for it... lots of code has changed, but we've had to always be mindful of the impact... despite the API changes though, it's only impacted UI in a small way (that's also an improvement) - but we were very careful in designing the component to do it in a way that wouldn't have any major unintended impacts. One thing we're considering for a database change - is A/B testing the backend infrastructure so we can gain more confidence in its behaviour in a production environment... if we do it, we'll probably fork all requests and send them to both the old version and new version of the database; then just log the responses from the new version... and keep an eye out for exceptions/long-running queries etc... then start sliding the trafffic slowly over from one to the other... Not entirely sure how to do it all yet... and we might only do it for reads but it seems like a pragmatic idea