Monolithic Application Decomposition via Domain-Driven Microservice Extraction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Legacy monolithic computing applications face challenges in scalability, resource allocation, and maintenance due to their self-contained nature, making it difficult for businesses to adapt to modern computing requirements such as handling large user bases and rapid changes, leading to increased engineering and operational costs.
Innovation Solution
A software modernization service that assists in decomposing monolithic applications into microservices by analyzing and categorizing application components, allowing them to be deployed independently as serverless functions, virtual machines, or containers, using graph models and domain-driven design principles to identify and refactor functionalities into separate services.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Stability of the object's composition
If monolithic applications are maintained as self-contained units, then system stability and simplicity are preserved, but scalability and adaptability deteriorate
Solution Approach 1:
The patent applies segmentation by breaking down monolithic applications into smaller, independently deployable microservices. Each microservice encapsulates specific business functionality and can be developed, deployed, and scaled independently, thereby improving scalability while maintaining system stability through modular architecture.
Solution Approach 2:
The patent extracts specific business domains and functionalities from the monolithic application structure. By identifying and separating distinct business capabilities into independent microservices, the system gains adaptability and scalability while the core stable functionalities remain intact within their own service boundaries.
2Adaptability or versatility
If monolithic applications are decomposed into microservices, then scalability and adaptability improve, but system complexity increases
Solution Approach 1:
The patent introduces an intermediary layer consisting of service meshes, API gateways, and standardized communication protocols between microservices. This intermediary infrastructure manages the complexity of inter-service communication, routing, and coordination, allowing high adaptability while abstracting away the underlying system complexity.
Solution Approach 2:
The patent employs universal patterns and standardized interfaces across microservices, such as common authentication mechanisms, standardized data exchange formats, and reusable service templates. This universality reduces system complexity by providing consistent approaches to common challenges while maintaining high adaptability through configurable implementations.
3Manufacturing precision
If manual refactoring is used to convert monolithic applications, then code quality improves, but time consumption and cost increase
Solution Approach 1:
The patent implements self-service mechanisms where automated analysis tools scan the monolithic codebase, identify candidate microservices, and generate refactoring proposals. The system assists developers by automatically detecting service boundaries, dependencies, and extraction points, thereby improving code quality while significantly reducing the time and effort required compared to purely manual refactoring.
Solution Approach 2:
The patent performs preliminary analysis and preparation work before actual refactoring begins. Automated tools pre-identify suitable microservice candidates, analyze dependency graphs, and prepare extraction plans, allowing developers to make informed decisions and execute refactoring more efficiently, thus achieving high code quality with reduced time consumption.
Data Source
AI summary
Disclosed are various embodiments for domain-driven application breakout. Application components are identified based on analysis of a computing application, where the application components are different portions of the computing application. Individual ones of the application components are associated with a category, where the category may include a business domain category. One or more of the application components associated with the category are extracted as an independently deployable subunit, which may include a microservice. The independently deployable subunit is generated for the category using the at least one of the application components and deployed separate from the computing application. A local call in the computing application to the extracted application components is refactored to a network call to the independently deployable subunit.


