Interface Evolution Patterns — Balancing Compatibility and Flexibility across Microservices Lifecycles

TitleInterface Evolution Patterns — Balancing Compatibility and Flexibility across Microservices Lifecycles
Publication TypeConference Paper
Year of Publication2019
AuthorsLübke, D., O. Zimmermann, C. Pautasso, and U. Zdun
Conference Name24th European Conference on Pattern Languages of Programs (EuroPLoP 2019)
MonthJuly
PublisherACM
Conference LocationIrsee, Germany
KeywordsAPI, API Evolution, Microservices, patterns
Abstract

Remote Application Programming Interfaces (APIs) are technology enablers for distributed system trends such as cloud-native application development. API providers find it hard to design their remote APIs so that they can be evolved easily; refactoring and extending an API while preserving backward compatibility is particularly challenging. If APIs are evolved poorly, clients are critically impacted; high costs to adapt and compensate for downtimes may result. For instance, if an API provider publishes a new incompatible API version, existing clients might break and not function properly until they are upgraded to support the new version. Hence, applying adequate strategies for evolving service APIs is one of the core problems in API governance, which in turn is a prerequisite for successfully integrating service providers with their clients in the long run. Although many patterns and pattern languages are concerned with API and service design and related integration technologies,patterns guiding the evolution of APIs are missing to date. Extending our pattern language on Microservice API Patterns (MAP), we introduce a set of patterns focusing on API evolution strategies in this paper: API Description, Version Identifier, Semantic Versioning, Eternal Lifetime Guarantee, Limited Lifetime Guarantee, Two in Production, Aggressive Obsolescence, and Experimental Preview.The patterns have been mined from public Web APIs and industry projects the authors have been involved in.

URLhttps://dl.acm.org/citation.cfm?id=3361164
DOI10.1145/3361149.3361164
Citation Key2019:map:europlop
Refereed DesignationRefereed