JS-Distributor: decomposing monolith applications into microservices
Abstract
While the decomposition of monolithic applications into microservices has been widely studied, most existing approaches stop at architectural analysis or service identification, offering little support for the actual generation and deployment of microservices. This creates a gap between design and implementation, often requiring significant manual effort from developers. It also limits researchers, who lack practical tools to test and experiment with new decomposition strategies in real-world scenarios. To address these challenges, we present JS-Distributor, a tool that automates the transformation of monolithic JavaScript applications into microservices. JS-Distributor generates much of the required boilerplate code for Node.js, including server setup and inter-service communication code, supporting both HTTP APIs and asynchronous messaging systems. By bridging the gap between decomposition and deployment, the tool enables rapid experimentation with different microservice architectures. We evaluated JS-Distributor using a benchmark system commonly adopted in microservice research, successfully distributing the original monolith into functional microservices while preserving its original logic. Demo video: https://doi.org/10.5281/zenodo.15477214
References
Yalemisew Abgaz, Andrew McCarren, Peter Elger, David Solan, Neil Lapuz, Marin Bivol, Glenn Jackson, Murat Yilmaz, Jim Buckley, and Paul Clarke. 2023. Decomposition of Monolith Applications Into Microservices Architectures: A Systematic Review. IEEE Transactions on Software Engineering 49, 8 (2023), 4213–4242. DOI: 10.1109/TSE.2023.3287297
Marco Autili, Gianluca Filippone, and Massimo Tivoli. 2023. Migrating from Monoliths to Microservices: Enforcing Correct Coordination. In 2023 38th IEEE/ACM International Conference on Automated Software EngineeringWorkshops (ASEW). 113–118. DOI: 10.1109/ASEW60602.2023.00020
Eric Brewer. 2012. CAP twelve years later: How the "rules" have changed. Computer 45, 2 (2012), 23–29. DOI: 10.1109/MC.2012.37
Leonardo Rebouças de Carvalho and Aletéia Patrícia Favacho de Araújo. 2019. Framework Node2FaaS: Automatic NodeJS Application Converter for Function as a Service. In Proceedings of the 9th International Conference on Cloud Computing and Services Science (Heraklion, Crete, Greece) (CLOSER 2019). SCITEPRESS - Science and Technology Publications, Lda, Setubal, PRT, 271–278. DOI: 10.5220/0007677902710278
Vinicius Nordi Esperança and Daniel Lucrédio. 2017. Late Decomposition of Applications into Services through Model-Driven Engineering. In Proceedings of the XXXI Brazilian Symposium on Software Engineering (Fortaleza, CE, Brazil) (SBES ’17). Association for Computing Machinery, New York, NY, USA, 164–173. DOI: 10.1145/3131151.3131165
Hassan Farsi, Driss Allaki, Abdeslam En-nouaary, and Mohamed Dahchour. 2023. Dealing with Anti-Patterns When Migrating from Monoliths to Microservices: Challenges and Research Directions. In 2023 IEEE 6th International Conference on Cloud Computing and Artificial Intelligence: Technologies and Applications (CloudTech). 1–8. DOI: 10.1109/CloudTech58737.2023.10366131
Anup K. Kalia, Jin Xiao, Chen Lin, Saurabh Sinha, John Rofrano, Maja Vukovic, and Debasish Banerjee. 2020. Mono2Micro: an AI-based toolchain for evolving monolithic enterprise applications to a microservice architecture. In Proceedings of the 28th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering (Virtual Event, USA) (ESEC/FSE 2020). Association for Computing Machinery, New York, NY, USA, 1606–1610. DOI: 10.1145/3368089.3417933
Alex Kaplunovich. 2019. ToLambda: automatic path to serverless architectures. In Proceedings of the 3rd InternationalWorkshop on Refactoring (Montreal, Quebec, Canada) (IWOR ’19). IEEE Press, 1–8. DOI: 10.1109/IWoR.2019.00008
Idris Oumoussa and Rajaa Saidi. 2024. Evolution of Microservices Identification in Monolith Decomposition: A Systematic Review. IEEE Access 12 (2024), 23389–23405. DOI: 10.1109/ACCESS.2024.3365079
Sunil Kumar A R. 2023. REST vs. Messaging for Microservices. Informatics - An eGovernance Publication from national Informatics Centre (2023). [link]
Yamina Romani, Okba Tibermacine, and Chouki Tibermacine. 2022. Towards Migrating Legacy Software Systems to Microservice-based Architectures: a Data-Centric Process for Microservice Identification. In 2022 IEEE 19th International Conference on Software Architecture Companion (ICSA-C). 15–19. DOI: 10.1109/ICSA-C54293.2022.00010
