From Detection to Refactoring of Microservice Bad Smells: A Systematic Literature Review
DOI:
https://doi.org/10.5753/jserd.2025.5224Keywords:
Microservice, Bad Smells, Refactoring, SLRAbstract
The extensive adoption of microservices architecture by technology companies is driven by its expected advantages, such as scalability, simplicity of development, and resilience, likely due to its cloud-native nature. However, the increasing complexity associated with this architecture can lead to the emergence of microservice smells, analogous to code smells, indicating potential architectural design issues. Despite the identification of numerous microservice smells in the literature, cohesive documentation to support architects detecting and refactoring them. This study conducts a Systematic Literature Review (SLR) to deepen the understanding of these microservice smells, explore detection tools and identify refactoring strategies to mitigate them. We conducted searches across six popular digital libraries, analyzing 27 relevant papers. As a result, we cataloged 104 distinct microservice bad smells, identified 7 detection tools, and compiled refactoring strategies for the most prevalent smells. This documentation aims to assist engineers and architects in identifying and effectively addressing microservice bad smells, thereby enhancing the quality and maintainability of microservice-based systems.
Downloads
References
Alshuqayran, N., Ali, N., and Evans, R. (2016). A systematic mapping study in microservice architecture. In 2016 IEEE 9th International Conference on Service-Oriented Computing and Applications (SOCA), pages 44–51.
Arcelli Fontana, F., Camilli, M., Rendina, D., Taraboi, A. G., and Trubiani, C. (2023). Impact of architectural smells on software performance: an exploratory study. In Proceedings of the 27th International Conference on Evaluation and Assessment in Software Engineering, pages 22–31.
Bogner, J. (2019). Microservices in industry: insights into technologies, characteristics, and software quality. IEEE international conference on software architecture companion (ICSA-C).
Bogner, J., Boceck, T., Popp, M., Tschechlov, D., Wagner, S., and Zimmermann, A. (2019a). Towards a collaborative repository for the documentation of service-based antipatterns and bad smells. In International Conference on Software Architecture Companion (ICSA-C), pages 95–101.
Bogner, J., Fritzsch, J., Wagner, S., and Zimmermann, A. (2018). Limiting technical debt with maintainability assurance: An industry survey on used techniques and differences with service- and microservice-based systems. In International Conference on Technical Debt, page 125–133.
Bogner, J., Fritzsch, J., Wagner, S., and Zimmermann, A. (2019b). Assuring the evolvability of microservices: Insights into industry practices and challenges. In International Conference on Software Maintenance and Evolution (ICSME), pages 546–556.
Capilla, R., Fontana, F. A., Mikkonen, T., Bacchiega, P., and Salamanca, V. (2023). Detecting architecture debt in micro-service open-source projects. In 49th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), page 394 – 401.
Cardoso, B. and Figueiredo, E. (2015). Co-occurrence of design patterns and bad smells in software systems: An exploratory study. In Proceedings of the Brazilian Symposium on Information Systems (SBSI).
Carrasco, A., Van Bladel, B., and Demeyer, S. (2018). Migrating towards microservices: Migration and architecture smells. In International Workshop on Refactoring (IWoR/ASE), pages 1 – 6.
Cerny, T., Abdelfattah, A. S., Maruf, A. A., Janes, A., and Taibi, D. (2023). Catalog and detection techniques of microservice anti-patterns and bad smells: A tertiary study. Journal of Systems and Software, 206.
De Lauretis, L. (2019). From monolithic architecture to microservices architecture. pages 93–96.
Fang, H., Cai, Y., Kazman, R., and Lefever, J. (2023). Identifying anti-patterns in distributed systems with heterogeneous dependencies. In IEEE 20th International Conference on Software Architecture Companion (ICSA-C).
Fernandes, E., Oliveira, J., Vale, G., Paiva, T., and Figueiredo, E. (2016). A review-based comparative study of bad smell detection tools. In 20th International Conference on Evaluation and Assessment in Software Engineering (EASE).
Fowler, M. (1999). Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston, MA.
Gaidels, E. and Kirikova, M. (2020). Service dependency graph analysis in microservice architecture. In Proceedings of the 19th International Conference on Business Informatics Research (BIR), pages 128–139. Springer.
Gamage, I. U. P. and Perera, I. (2021). Using dependency graph and graph theory concepts to identify anti-patterns in a microservices system: A tool-based approach. In Moratuwa Engineering Research Conference (MERCon).
Garcia, J., Popescu, D., Edwards, G., and Medvidovic, N. (2009a). Identifying architectural bad smells. In 2009 13th European Conference on Software Maintenance and Reengineering, pages 255–258.
Garcia, J., Popescu, D., Edwards, G., and Medvidovic, N. (2009b). Toward a Catalogue of Architectural Bad Smells, pages 146–162. Springer.
Guo, D. and Wu, H. (2021). A review of bad smells in cloud-based applications and microservices. In 2021 International Conference on Intelligent Computing, Automation and Systems (ICICAS), pages 255–259.
Jamshidi, P., Pahl, C., Mendonça, N. C., Lewis, J., and Tilkov, S. (2018). Microservices: The journey so far and challenges ahead. IEEE Software, 35(3):24–35.
Kitchenham, B. A., Budgen, D., and Brereton, P. (2015). Evidence-Based Software Engineering and Systematic Reviews. Chapman & Hall/CRC.
Kitchenham, B. A. and Charters, S. (2007). Guidelines for performing systematic literature reviews in software engineering. Technical Report EBSE 2007-001.
Lenarduzzi, V., Lomio, F., Saarimäki, N., and Taibi, D. (2020). Does migrating a monolithic system to microservices decrease the technical debt? Journal of Systems and Software, 169:110710.
Liu, L., Tu, Z., He, X., Xu, X., and Wang, Z. (2021). An empirical study on underlying correlations between runtime performance deficiencies and “bad smells” of microservice systems. In 2021 IEEE International Conference on Web Services (ICWS), pages 751–757.
Neri, D., Soldani, J., Zimmermann, O., and Brogi, A. (2020). Design principles, architectural smells and refactorings for microservices: a multivocal review. volume 35.
Ntentos, E., Zdun, U., Plakidas, K., and Geiger, S. (2021). Evaluating and improving microservice architecture conformance to architectural design decisions. In Service-Oriented Computing, page 188–203.
Page, M. J. et al. (2021). The prisma 2020 statement: an updated guideline for reporting systematic reviews. BMJ, 372.
Pfleeger, S. L. and Kitchenham, B. (2025). Evidence-based software engineering guidelines revisited. IEEE Transactions on Software Engineering.
Pigazzini, I., Di Nucci, D., Fontana, F. A., and Belotti, M. (2022). Exploiting dynamic analysis for architectural smell detection: a preliminary study. In 48th Euromicro Conference on Software Engineering and Advanced Applications (SEAA), page 282 – 289.
Pigazzini, I., Fontana, F. A., Lenarduzzi, V., and Taibi, D. (2020). Towards microservice smells detection. In Proceedings of the 3rd International Conference on Technical Debt, pages 92–97.
Pinheiro, D., Oliveira, J., and Figueiredo, E. (2022). Microservice smells and automated detection tools: A systematic literature review. In In proceedings of the International Conference on Microservices (Microservices).
Ponce, F., Soldani, J., Astudillo, H., and Brogi, A. (2022). Smells and refactorings for microservices security: A multivocal literature review. Journal of Systems and Software, 192:111393.
Pulnil, S. and Senivongse, T. (2022). A microservices quality model based on microservices anti-patterns. In 19th International Joint Conference on Computer Science and Software Engineering (JCSSE).
Rademacher, F., Sachweh, S., and Zündorf, A. (2019). Aspect-oriented modeling of technology heterogeneity in microservice architecture. In International Conference on Software Architecture (ICSA).
Santana, A., Figueiredo, E., Pereira, J. A., and Garcia, A. (2024). An exploratory evaluation of code smell agglomerations. Software Quality Journal.
Soldani., J., Marinò., M., and Brogi., A. (2023). Semi-automated smell resolution in kubernetes-deployed microservices. In Proceedings of the 13th International Conference on Cloud Computing and Services Science - CLOSER, pages 34–45. INSTICC, SciTePress.
Soldani, J., Muntoni, G., Neri, D., and Brogi, A. (2021). The μtosca toolchain: Mining, analyzing, and refactoring microservice-based architectures. Software - Practice and Experience, 51(7):1591 – 1621.
Taibi, D. and Lenarduzzi, V. (2018). On the definition of microservice bad smells. IEEE Software.
Taibi, D., Lenarduzzi, V., and Pahl, C. (2018). Architectural patterns for microservices: A systematic mapping study. In Int’l Conf. on Cloud Computing and Services Science (CLOSER).
Tighilt, R. et al. (2023). On the maintenance support for microservice-based systems through the specification and the detection of microservice antipatterns. Journal of Systems and Software, 204:111755.
Toledo, S., Martini, A., and Sjøberg, D. (2020). Improving agility by managing shared libraries in microservices. Lecture Notes in Business Information Processing (LNBIP).
Viggiato, M., Terra, R., Rocha, H., Valente, M. T., and Figueiredo, E. (2018). Microservices in practice: A survey study. In 6th Workshop on Software Visualization, Evolution and Maintenance (VEM).
Walker, A., Das, D., and Cerny, T. (2020). Automated code-smell detection in microservices through static analysis: A case study. Applied Sciences, 10(21):7800.
Walker, A., Das, D., and Cerny, T. (2021). Automated microservice code-smell detection. In Information Science and Applications, page 211–221. Springer Singapore.
Wohlin, C. (2000). Experimentation in Software Engineering: An Introduction. The sKluwer ISECS.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2025 Mateus Dutra, Denis Pinheiro, Johnatan Oliveira, Eduardo Figueiredo

This work is licensed under a Creative Commons Attribution 4.0 International License.

