Microservice Decomposition via Code Property Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing automated systems for microservice decomposition of monolithic applications are inefficient due to reliance on simple heuristics, lack of consideration for semantic structure, data and control dependencies, and temporal code evolution, and failure to leverage business documentation for identifying functional purposes.

Innovation Solution

A system that generates a code property graph based on both technical and business document corpora, using community detection and topic modeling to identify disjoint code clusters and recommend microservices for replacement, incorporating temporal code evolution to enhance accuracy.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If simple heuristics are used for automated microservice decomposition, then the process is fast and simple, but the accuracy and quality of decomposition recommendations are poor

Engineering Contradiction:
Improvedecomposition speedVSAvoiddecomposition accuracy
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system segments the monolithic application into distinct code clusters using community detection algorithms on code property graphs. This segmentation approach allows automated decomposition while maintaining high accuracy by grouping related code elements together based on their structural and semantic relationships, rather than using simple heuristic rules.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system adds multiple dimensions to the decomposition analysis by incorporating temporal code evolution data and business documentation alongside traditional code structure analysis. This multi-dimensional approach enables accurate decomposition recommendations while maintaining automated efficiency, as the system processes multiple data types simultaneously through graph-based representations.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If semantic structure and business documentation are analyzed, then decomposition accuracy improves, but system complexity and processing time increase

Engineering Contradiction:
Improvefunctional purpose identification accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system uses code property graphs as an intermediary representation that unifies code structure, temporal evolution, and business documentation into a single integrated model. This intermediary structure enables accurate functional purpose identification without significantly increasing system complexity, as the graph-based approach provides a natural framework for combining multiple data types.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system replaces traditional text-based semantic analysis with graph-based community detection and topic modeling. This substitution maintains high accuracy in identifying functional purposes while reducing system complexity, as graph algorithms provide efficient and scalable methods for analyzing semantic relationships compared to traditional natural language processing approaches.

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

3Reliability

If temporal code evolution is incorporated, then decomposition recommendations are more accurate, but data processing requirements and computational overhead increase

Engineering Contradiction:
Improvedecomposition recommendation qualityVSAvoiddata processing volume
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system performs preliminary analysis by building code property graphs that pre-process and organize temporal code evolution data before decomposition analysis. This preliminary structuring of historical code changes enables more accurate decomposition recommendations while reducing computational overhead during the actual decomposition process, as the temporal patterns are already captured in the graph structure.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11416243B2Microservice decomposition strategy of monolithic applications
Publication Date: 2022.08.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11416243B2 patent drawing
  • US11416243B2 patent drawing
  • US11416243B2 patent drawing

AI summary

Systems and techniques that facilitate automated recommendation of microservice decomposition strategies for monolithic applications are provided. In various embodiments, a community detection component can detect a disjoint code cluster in a monolithic application based on a code property graph characterizing the monolithic application. In various aspects, the code property graph can be based on a temporal code evolution of the monolithic application. In various embodiments, a topic modeling component can identify a functional purpose of the disjoint code cluster based on a business document corpus corresponding to the monolithic application. In various embodiments, a microservices component can recommend a microservice to replace the disjoint code cluster based on the functional purpose.