API Evolution Without Versioning

Versioning is usually the first–and too often, the only–technique architects reach for when imagining a breaking change to an API’s interface. Based on my experience managing the evolution of a public API, I’ve recently cataloged several alternative techniques and their tradeoffs. I released the first version of an open-source service virtualization tool called mountebank in early 2014. Since that time, I have made or incorporated several breaking changes to its public API, some of them significant, without once requiring users to manage a version upgrade process.

In this presentation, I’ll share the learnings I’ve collected over nearly a decade of changes, including:

  • Patterns of evolution in addition to versioning

  • The natural tradeoffs that exist between API elegance, obviousness, and stability

  • Broadening the conversation from API evolution as an architectural concern to a broader product management concern

Interview:

What's the focus of your work these days?

I'm in a technology leadership role at ThoughtWorks, so it's a lot of community building capability development and a lot of trying to make sure that the flow of knowledge between the work that we do in various teams happens so that we can all learn from each other. A rising tide lifts all ships mentality. 

What's the motivation behind this talk?

I have maintained an open source product that is controllable through an API for about nine years. And I intentionally did it as an experiment to try to play with a versionless approach to an API. So even though it's evolved considerably in the nine years, it's done so without requiring an upgrade from consumers and there's some downsides to that that we'll talk about in the talk, but the upsides is a much easier consumer experience. And so I wanted to talk about various strategies and patterns that I've used to help maintain that consumer experience through a long lived, flexible API.

How would you describe the persona and level of your target audience for this session?

The persona would be for those developers, architects, technical product managers who are interested in treating API as a product, maybe more strategic APIs, maybe they are partner or public APIs or strategic inside the enterprise, and looking for patterns of evolution that take into account not just implementation complexity, which is a common concern today, but also consumption complexity.

Is there anything that you would like this persona to walk away with after seeing your presentation?

Partly, I want them to walk away with more empathy for what it means to be on the receiving end of an API that goes through rapid versioning and just the busy work required to keep up with the pace of evolution. And then a little bit of awareness in terms of the tradeoffs around implementation complexity and interface complexity.


Speaker

Brandon Byars

North America Head of Technology @thoughtworks

Brandon Byars is a passionate technologist, consultant, author, speaker, and open source maintainer. As Head of Technology for Thoughtworks North America, Brandon is part of the group that puts together the Thoughtworks Technology Radar, a biannual, opinionated perspective on technology trends. As a consultant, he has helped lead digital transformation agendas across a range of industries, with a  focus on those technical enabling blocks and integration strategies that help promote autonomy and agility at scale. He is the creator of mountebank, a widely used service virtualization tool, and wrote a related book on testing microservices.

Read more
Find Brandon Byars at:

Date

Friday Dec 2 / 09:00AM PST ( 50 minutes )

Topics

Application Programming Interface Modern APIs Open-Source Patterns of Evolution Versioning DevOps Architecture

Share

From the same track

Session Application Programming Interface

What API Product Managers Need

Friday Dec 2 / 10:10AM PST

With thousands of APIs being built across the industry, serving millions of developers worldwide, and driving billions in revenue, there is a need to manage APIs as products. Building great API products requires both building technically sound APIs and creating an API experience to match.

Speaker image - Deepa Goyal

Deepa Goyal

Product Strategy @Postman, previously Product Developer @PayPal & @Twilio

Session Application Programming Interface

Scaling GraphQL Adoption at Netflix

Friday Dec 2 / 11:20AM PST

GraphQL is steadily gaining popularity as an API technology choice for Client to Server communication. However, it can be daunting to realize the benefits of GraphQL without significant investment.

Speaker image - Tejas Shikhare

Tejas Shikhare

Senior Software Engineer @Netflix

Session Application Programming Interface

Sidecars, eBPF and the Future of Service Mesh

Friday Dec 2 / 12:30PM PST

Controversy over the future of service meshes and their architectures is swirling. This is a vital discussion as enterprise migration to microservice and Kubernetes-based architectures continue. This talk incorporates the latest community developments to explore what the future looks like.

Speaker image - Jim Barton

Jim Barton

Field Engineer @Solo