Continuous delivery and outdated clients



Β β€’Β 

7 months ago

Β β€’Β 

View on Twitter

Releasing in continuous delivery fashion is nice... but how do you deal with outdated clients? What's your strategy for it? We do several deploys per day (+-30) and although it's nice to be able to iterate so fast it also creates some challenges.πŸ‘‡πŸ§΅

We are releasing the first bits of GraphQL into production, to be concrete we are trying to gradually roll it out to prevent some big mistakes. You know the drill; 5%, 10%, 20%... 🀨 . We soon realized we missed one data loader and we also refactored the query to ask for less.

No problem, we have pretty good observability (DataDog and APM ftw!) we have deployed a fix on the backend and soon after it, we fixed it on FE as well. So we tried that again. At first glance, the metrics were much better. Until they weren't. I was like – what? πŸ€”

So I quickly pulled another chart and immediately realized what was going on. We were still firing the old query which should be dead. But it's not, it's still loaded in browsers of our clients. Because both codes are effectively living under the same feature flag.. soo. Bazinga!

So back to the topic. We don't have a good strategy to inform users about the new version and I guess it can't be super naive (e.g inform about every). For example, I hate Spotify's "blue dot".. but I update it anyway every time I see it. I would be curious about their data. πŸ₯°

By the way, if you are curious we will probably release it under the altered feature flag, that should do the trick. But I would like to prepare a strategy for future me because this will happen again. πŸ€“