Microservice API Evolution in Practice: A Study on Strategies and Challenges

被引:8
作者
Lercher, Alexander [1 ]
Glock, Johann [1 ]
Macho, Christian [1 ]
Pinzger, Martin [1 ]
机构
[1] Univ Klagenfurt, Dept Informat Syst, Univ Str 65-67, A-9020 Klagenfurt, Austria
基金
奥地利科学基金会;
关键词
Microservice architecture; API evolution; API versioning; Backward compatibility; API design degradation; Development team collaboration;
D O I
10.1016/j.jss.2024.112110
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Nowadays, many companies design and develop their software systems as a set of loosely coupled microservices that communicate via their Application Programming Interfaces (APIs). While the loose coupling improves maintainability, scalability, and fault tolerance, it poses new challenges to the API evolution process. Related works identified communication and integration as major API evolution challenges but did not provide the underlying reasons and research directions to mitigate them. In this paper, we aim to identify microservice API evolution strategies and challenges in practice and gain a broader perspective of their relationships. We conducted 17 semi-structured interviews with developers, architects, and managers in 11 companies and analyzed the interviews with open coding used in grounded theory. In total, we identified six strategies and six challenges for REpresentational State Transfer (REST) and event-driven communication via message brokers. The strategies mainly focus on API backward compatibility, versioning, and close collaboration between teams. The challenges include change impact analysis efforts, ineffective communication of changes, and consumer reliance on outdated versions, leading to API design degradation. We defined two important problems in microservice API evolution resulting from the challenges and their coping strategies: tight organizational coupling and consumer lock-in. To mitigate these two problems, we propose automating the change impact analysis and investigating effective communication of changes as open research directions. Editor's note: Open Science material was validated by the Journal of Systems and Software Open Science Board.
引用
收藏
页数:19
相关论文
共 103 条
[1]  
Adams W. C., 2015, Handbook of practical program evaluation: Fourth edition, P492, DOI [DOI 10.1002/9781119171386.CH19, 10.1002/9781119171386.ch19]
[2]   Using grounded theory to study the experience of software development [J].
Adolph, Steve ;
Hall, Wendy ;
Kruchten, Philippe .
EMPIRICAL SOFTWARE ENGINEERING, 2011, 16 (04) :487-513
[3]   Performance Analysis of Microservice Design Patterns [J].
Akbulut, Akhan ;
Perros, Harry G. .
IEEE INTERNET COMPUTING, 2019, 23 (06) :19-27
[4]   Deployment and communication patterns in microservice architectures: A systematic literature review [J].
Aksakalli, Isil Karabey ;
Celik, Turgay ;
Can, Ahmet Burak ;
Tekinerdogan, Bedir .
JOURNAL OF SYSTEMS AND SOFTWARE, 2021, 180
[5]   Decomposing the Rationale of Code Commits: The Software Developer's Perspective [J].
Al Safwan, Khadijah ;
Servant, Francisco .
ESEC/FSE'2019: PROCEEDINGS OF THE 2019 27TH ACM JOINT MEETING ON EUROPEAN SOFTWARE ENGINEERING CONFERENCE AND SYMPOSIUM ON THE FOUNDATIONS OF SOFTWARE ENGINEERING, 2019, :397-408
[6]   A Systematic Mapping Study in Microservice Architecture [J].
Alshuqayran, Nuha ;
Ali, Nour ;
Evans, Roger .
2016 IEEE 9TH INTERNATIONAL CONFERENCE ON SERVICE-ORIENTED COMPUTING AND APPLICATIONS (SOCA), 2016, :44-51
[7]  
[Anonymous], 2012, Case Study Research in Software Engineering, DOI DOI 10.1002/9781118181034.CH5
[8]  
[Anonymous], 2009, P 18 INT C WORLD WID, DOI [DOI 10.1145/1526709.1526832, 10.1145/1526709.1526832]
[9]   How do microservices evolve? An empirical analysis of changes in open-source microservice repositories [J].
Assuncao, Wesley K. G. ;
Kruger, Jacob ;
Mosser, Sebastien ;
Selaoui, Sofiane .
JOURNAL OF SYSTEMS AND SOFTWARE, 2023, 204
[10]   Sampling in software engineering research: a critical review and guidelines [J].
Baltes, Sebastian ;
Ralph, Paul .
EMPIRICAL SOFTWARE ENGINEERING, 2022, 27 (04)