# Extracting Overlapping Microservices from Monolithic Code via Deep Semantic Embeddings and Graph Neural Network-Based Soft Clustering

arXiv: https://arxiv.org/abs/2508.07486 · HTML: https://mlsanity.com/paper/2508.07486/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 8 of its 36 references that are in the map.
- First posted on arXiv 10 Aug 2025.

## Builds on (most cited first, 8 of 8)

- [A Systematic Evaluation of Large Language Models of Code](https://mlsanity.com/paper/2202.13169/) (2022)
- [UniXcoder: Unified Cross-Modal Pre-training for Code Representation](https://mlsanity.com/paper/2203.03850/) (2022)
- [Graph Neural Network to Dilute Outliers for Refactoring Monolith Application](https://mlsanity.com/paper/2102.03827/) (2021)
- [Mono2Micro: A Practical and Effective Tool for Decomposing Monolithic Java Applications to Microservices](https://mlsanity.com/paper/2107.09698/) (2021)
- [A curated Dataset of Microservices-Based Systems](https://mlsanity.com/paper/1909.03249/) (2019)
- [A Hierarchical-DBSCAN Method for Extracting Microservices from Monolithic Applications](https://mlsanity.com/paper/2206.07010/) (2022)
- [Evaluation of the impacts of decomposing a monolithic application into microservices: A case study](https://mlsanity.com/paper/2203.13878/) (2022)
- [Evaluating The Impact Of Cloud-Based Microservices Architecture On Application Performance](https://mlsanity.com/paper/2305.15438/) (2023)

## Built on by (most cited first, 1 of 1)

- [SCPP: A Unified Python Library for Soft Clustering](https://mlsanity.com/paper/2607.19620/) (2026)

## Abstract (arXiv)

Modern software systems are increasingly shifting from monolithic architectures to microservices to enhance scalability, maintainability, and deployment flexibility. Existing microservice extraction methods typically rely on hard clustering, assigning each software component to a single microservice. This approach often increases inter-service coupling and reduces intra-service cohesion. We propose Mo2oM (Monolithic to Overlapping Microservices), a framework that formulates microservice extraction as a soft clustering problem, allowing components to belong probabilistically to multiple microservices. This approach is inspired by expert-driven decompositions, where practitioners intentionally replicate certain software components across services to reduce communication overhead. Mo2oM combines deep semantic embeddings with structural dependencies extracted from methodcall graphs to capture both functional and architectural relationships. A graph neural network-based soft clustering algorithm then generates the final set of microservices. We evaluate Mo2oM on four open-source monolithic benchmarks and compare it against eight state-of-the-art baselines. Our results demonstrate that Mo2oM achieves improvements of up to 40.97% in structural modularity (balancing cohesion and coupling), 58% in inter-service call percentage (communication overhead), 26.16% in interface number (modularity and decoupling), and 38.96% in non-extreme distribution (service size balance) across all benchmarks.
