I thought this was something obvious that everyone did? I was definitely doing this 15+ yrs ago when I built web services. It's the only path of sanity when you have to support multiple versions at the same time.<p>Neither the article, nor the linked articles, address how to handle actual breaking changes.<p>E.g. when you _require_ new fields that are not present in the old API, you can't just hard-code a default value for the old API and use it forever. You must migrate clients to a new API and deprecate the old. Rolling versions doesn't magically solve that.<p>I admit, most required fields can be defaulted and clients accept the resulting degraded experience/features. This approach does make you really think about what's actually a breaking change or not, and if it's worth the cost.