In this study, the researchers aimed to identify microservice API evolution strategies and challenges in practice by conducting 17 semi-structured interviews with developers, architects, and managers in 11 companies. The participants were industry practitioners with an average of 10 years of practical experience and an average of 4.5 years of experience with loosely coupled services. The study utilized member checking by sharing the results with participants for feedback and validation, resulting in minor remarks from two participants that were incorporated into the findings. Participant selection was done through snowball sampling, contacting previous colleagues and asking them to forward interview requests to peers matching the study's requirements. A total of 25 colleagues were contacted directly, leading to 20 interviews conducted with participants from 12 companies. Three interviews were excluded from the results due to various reasons such as handling API evolution like internal source code changes or not introducing breaking changes to product APIs yet. The study focused on message exchange techniques used in practice and their corresponding documentation techniques, answering the research question of how developers exchange messages between services and document them. Interviews lasted between 52-92 minutes, conducted both online via videoconference and in person without noticeable differences in participant openness or involvement based on the mode of communication. Overall, the research findings identified six strategies and six challenges for REST and event-driven communication via message brokers in microservice API evolution. Strategies emphasized API backward compatibility, versioning, and close collaboration between teams while challenges included change impact analysis efforts, ineffective communication of changes, and consumer reliance on outdated versions leading to API design degradation. The study highlighted important problems such as tight organizational coupling and consumer lock-in resulting from these challenges along with proposed solutions like automating change impact analysis and improving communication of changes as open research directions.
- - Researchers conducted 17 semi-structured interviews with industry practitioners to identify microservice API evolution strategies and challenges.
- - Participants had an average of 10 years of practical experience and 4.5 years of experience with loosely coupled services.
- - Member checking was utilized, with feedback from participants resulting in minor remarks incorporated into the findings.
- - Participant selection was done through snowball sampling, leading to 20 interviews conducted with participants from 12 companies.
- - The study focused on message exchange techniques and documentation practices in microservices.
- - Six strategies and six challenges for REST and event-driven communication were identified in microservice API evolution.
- - Challenges included change impact analysis efforts, ineffective communication of changes, and consumer reliance on outdated versions leading to API design degradation.
- - Proposed solutions included automating change impact analysis and improving communication of changes as open research directions.
SummaryResearchers talked to 17 people who work in a certain industry to learn about how small computer programs talk to each other and the problems they face. These people had around 10 years of experience working and 4.5 years of experience with these types of programs. They asked the people for feedback on their findings and made some small changes based on what they said. The researchers found these people by asking others for recommendations, and they ended up talking to 20 people from 12 different companies. The study looked at how messages are sent between these small programs and how information is written down.
Definitions- Researchers: People who study things to learn more about them.
- Industry practitioners: People who work in a specific field or industry.
- Microservice: Small computer program that does one specific job.
- API: A set of rules that allows different software applications to communicate with each other.
- Evolution strategies: Ways to make something change or improve over time.
- Challenges: Difficulties or problems that need to be solved.
- Participant selection: Choosing who will take part in a study or research project.
- Snowball sampling: A method where new participants are chosen based on recommendations from existing participants.
- Message exchange techniques: Different ways information is shared between programs.
- Documentation practices: How information is written down and stored for reference.
Microservices have become increasingly popular in software development due to their ability to improve scalability, flexibility, and maintainability of complex systems. However, with the rise of microservices comes the challenge of managing their APIs and ensuring smooth evolution over time. In order to address this issue, a group of researchers conducted a study aimed at identifying microservice API evolution strategies and challenges in practice.
The study involved 17 semi-structured interviews with developers, architects, and managers from 11 different companies. The participants were industry practitioners with an average of 10 years of practical experience and an average of 4.5 years of experience specifically with loosely coupled services. This ensured that the participants had sufficient knowledge and experience to provide valuable insights into the topic.
In order to ensure the validity and accuracy of their findings, the researchers utilized member checking by sharing their results with participants for feedback and validation. This resulted in minor remarks from two participants which were incorporated into the final findings.
Participant selection was done through snowball sampling, where previous colleagues were contacted and asked to forward interview requests to peers who met the requirements for the study. A total of 25 colleagues were contacted directly, leading to 20 interviews being conducted with participants from 12 different companies.
However, three interviews had to be excluded from the final results due to various reasons such as handling API evolution like internal source code changes or not introducing breaking changes yet. This ensured that only relevant data was included in the analysis.
The main focus of this research was on message exchange techniques used in practice for microservice API evolution along with their corresponding documentation techniques. The research question addressed by this study was how developers exchange messages between services and document them.
The interviews lasted between 52-92 minutes each and were conducted both online via videoconference or in person without any noticeable differences in participant openness or involvement based on mode of communication.
Overall, six strategies for REST (Representational State Transfer) and event-driven communication via message brokers were identified in the study. These strategies emphasized the importance of API backward compatibility, versioning, and close collaboration between teams.
On the other hand, six challenges were also identified in this research. These included efforts required for change impact analysis, ineffective communication of changes, and consumer reliance on outdated versions leading to API design degradation. The study highlighted important problems such as tight organizational coupling and consumer lock-in resulting from these challenges.
In order to address these issues, the researchers proposed solutions such as automating change impact analysis and improving communication of changes. These were suggested as potential open research directions that could help improve microservice API evolution in practice.
In conclusion, this study provides valuable insights into the current practices and challenges faced by industry practitioners when it comes to microservice API evolution. By identifying strategies and challenges, along with proposing potential solutions for improvement, this research can serve as a useful resource for developers looking to optimize their microservice architecture.