Determining Microservice Boundaries: A Case Study Using Static and Dynamic Software Analysis
A number of approaches have been proposed to identify service boundaries when decomposing a monolith to microservices. However, only a few use methods that are both systematic and demonstrated with replicable empirical studies. We describe a systematic approach for refactoring a system to a microservice architecture that uses static analysis to determine the structure of a system and dynamic analysis to understand its actual behavior. A prototype of a tool was built using this approach (MonoBreaker) and was used to conduct a case study on a real-world software project. The goal was to assess the feasibility and benefits of a systematic approach to decomposition that combines static and dynamic analysis. The three study participants regarded positively the decomposition proposed by our tool and showed improvements over approaches that rely only on static analysis.