Monolithic Application Decomposition via Domain-Driven Microservice Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improvesystem stabilityVSAvoidscalability
Core Design Contradiction:
Stability of the object's compositionVSAdaptability or versatility

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #2Taking out (Extraction)

2Adaptability or versatility

If monolithic applications are decomposed into microservices, then scalability and adaptability improve, but system complexity increases

Engineering Contradiction:
ImproveadaptabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

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.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Manufacturing precision

If manual refactoring is used to convert monolithic applications, then code quality improves, but time consumption and cost increase

Engineering Contradiction:
Improvecode qualityVSAvoidtime consumption
Core Design Contradiction:
Manufacturing precisionVSLoss of time

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.

Inventive Principle:
Principle #25Self-service

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11327750B1Domain-driven application breakout
Publication Date: 2022.05.10 AMAZON TECH INC
  • US11327750B1 patent drawing
  • US11327750B1 patent drawing
  • US11327750B1 patent drawing

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.