Monolithic Application Transaction Segmentation for Microservice Migration

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Transforming monolithic applications into microservices is challenging due to the difficulty in identifying and decoupling key business transactions buried in thousands of lines of code, and manually designing target microservices is inefficient, making it hard to maximize business value and migrate application transactions effectively.

Innovation Solution

The method involves determining transactions using predefined rules, ranking them, selecting candidate transactions, mapping lines of application code to different operations, and defining a target state design based on CQRS principles to isolate and refactor transactions into microservices, using static and dynamic code analysis, and machine learning to identify optimal vertical slices and business logic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If manual design and transformation of microservices is performed, then customization and business logic alignment can be achieved, but time consumption and inefficiency increase significantly

Engineering Contradiction:
Improvetransformation efficiencyVSAvoidtime for manual design and transformation
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The system performs automatic identification of transactions, automatic ranking based on business value, automatic mapping of code lines to operations, and automatic generation of target state design. The transformation process serves itself without requiring manual intervention at each step, thereby dramatically improving productivity and reducing time loss.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system performs preliminary analysis of the monolithic application codebase, pre-identifies transactions, pre-ranks them by business value, and pre-maps code lines to operations before the actual microservice transformation begins. This preliminary preparation enables the transformation to proceed efficiently with minimal manual intervention during execution.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If the entire monolithic application is transformed to microservices at once, then complete architectural modernization is achieved, but complexity and risk of failure increase

Engineering Contradiction:
Improvearchitectural flexibilityVSAvoidtransformation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system segments the monolithic application into discrete transactions, ranks them individually, and enables selective transformation of specific transactions into microservices. This segmentation allows the organization to modernize incrementally, transforming high-value transactions first while keeping the system manageable and reducing overall transformation complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system enables partial transformation where only selected transactions are converted to microservices rather than requiring complete transformation of the entire application. This partial action approach allows the organization to achieve architectural flexibility in critical areas while avoiding the overwhelming complexity of full-scale transformation.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If transactions are identified and decoupled from monolithic code, then microservice architecture benefits are achieved, but difficulty in identifying key transactions buried in code increases

Engineering Contradiction:
Improvemicroservice architecture reliabilityVSAvoiddifficulty in identifying key transactions
Core Design Contradiction:
ReliabilityVSDifficulty of detecting and measuring

Solution Approach 1:

The system replaces manual code analysis and transaction identification with automated computational analysis. The system automatically scans the monolithic codebase, identifies transactions, determines their business value, and ranks them - substituting the mechanical process of manual code review with an automated intelligent system that can efficiently detect and measure transaction importance.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Manufacturing precision

If comprehensive code analysis is performed to identify all transactions, then complete transformation accuracy is achieved, but computational resources and time consumption increase

Engineering Contradiction:
Improvetransformation accuracyVSAvoidcomputational resource consumption
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

Solution Approach 1:

The system performs comprehensive code analysis selectively - it analyzes the entire codebase to identify all transactions, but then focuses detailed analysis and ranking only on the transactions that are selected for transformation. This partial application of comprehensive analysis maintains transformation accuracy for the selected transactions while reducing overall computational resource consumption.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11567760B2Transforming select portions of a monolithic application to microservices
Publication Date: 2023.01.31 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11567760B2 patent drawing
  • US11567760B2 patent drawing
  • US11567760B2 patent drawing

AI summary

A method includes: determining, by a computing device, transactions of a monolithic application; ranking, by the computing device, the transactions using predefined rules; selecting, by the computing device, a candidate transaction from the ranked list; determining, by the computing device, lines of application code of the monolithic application associated with the candidate transaction; mapping, by the computing device, respective ones of the determined lines of application code to a first operation and a second operation, wherein the first operation and the second operation are different types of operation; and defining, by the computing device, a target state design based on CQRS (Command Query Responsibility Segregation), the target state design including a first microservice that performs the first operation and a second microservice that performs the second operation.