JS-Distributor: decomposing monolith applications into microservices - Escher, Guilherme Salvador; Almeida, Maurício Gallera de; Cardozo, João Vitor Fidelis; Leite, Romeu; Navas, Ivan Capeli; Esperança, Vinicius Nordi; Lucrédio, Daniel (Anais do Simpósio Brasileiro de Engenharia de Software (SBES), 2025)
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