On the Maintenance of a Scientific Application based on Microservices: An Experience Report
Microservices Architecture has been adopted by several companies to develop applications and replace monolithic ones. Several works point out that this approach supports the design of maintainable software systems. However, none of them presents a quantitative empirical study on the extent of the maintenance support in a real-world application. This work assesses how Microservices Architecture supports software maintenance through an empirical quantitative study of a scientific application built from scratch. We collected data from January 2016 (the beginning of the project) to December 2019, and analyzed 19 microservices, 34 repositories, and 15,408 commits. Then, we present the lessons learned during the project that allowed reaching the assessment results. Our findings may assist practitioners in making architectural decisions and pointing out research opportunities for academics.