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
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.