Identifying Appropriately-Sized Services with Deep Reinforcement Learning
By: Syeda Tasnim Fabiha , Saad Shafiq , Wesley Klewerton Guez Assunção and more
Service-based architecture (SBA) has gained attention in industry and academia as a means to modernize legacy systems. It refers to a design style that enables systems to be developed as suites of small, loosely coupled, and autonomous components (services) that encapsulate functionality and communicate via language-agnostic APIs. However, defining appropriately sized services that capture cohesive subsets of system functionality remains challenging. Existing work often relies on the availability of documentation, access to project personnel, or a priori knowledge of the target number of services, assumptions that do not hold in many real-world scenarios. Our work addresses these limitations using a deep reinforcement learning-based approach to identify appropriately sized services directly from implementation artifacts. We present Rake, a reinforcement learning-based technique that leverages available system documentation and source code to guide service decomposition at the level of implementation methods. Rake does not require specific documentation or access to project personnel and is language-agnostic. It also supports a customizable objective function that balances modularization quality and business capability alignment, i.e., the degree to which a service covers the targeted business capability. We applied Rake to four open-source legacy projects and compared it with two state-of-the-art techniques. On average, Rake achieved 7-14 percent higher modularization quality and 18-22 percent stronger business capability alignment. Our results further show that optimizing solely for business context can degrade decomposition quality in tightly coupled systems, highlighting the need for balanced objectives.
Similar Papers
Reinforcement Learning Integrated Agentic RAG for Software Test Cases Authoring
Software Engineering
AI learns to write better software tests.
A Systematic Literature Review of Machine Learning Approaches for Migrating Monolithic Systems to Microservices
Software Engineering
Helps computers break big programs into smaller parts.
Reinforcement Learning for Self-Improving Agent with Skill Library
Artificial Intelligence
Teaches AI to learn new tricks by itself.