Microservice Dependency Graphs From Static Code and Config Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex containerized application environments, there is a lack of clear understanding of the intended business logic and dependencies among microservices, leading to difficulties in managing and troubleshooting dynamic changes, especially in multi-cloud or hybrid-cloud setups, where different versions of containers can exhibit varying behaviors, and logging information is often isolated and difficult to correlate.

Innovation Solution

A system performs static analysis on source code and configuration files to identify dependencies, creating a dependency graph that visualizes the relationships between microservices and their resources, allowing for a graphical representation of these dependencies in a user interface, thereby capturing intended business logic without requiring physical deployments or executions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of information

If static analysis is performed on source code and configuration files to identify dependencies, then understanding of intended business logic and dependencies is improved, but time and computational resources are consumed for analysis

Engineering Contradiction:
ImproveUnderstanding of dependencies and business logicVSAvoidTime for data retrieval and analysis
Core Design Contradiction:
Loss of informationVSLoss of time

Solution Approach 1:

The system performs static analysis on source code and configuration files in advance to build a dependency graph before runtime operations. This preliminary action captures intended dependencies and business logic, making them immediately available for troubleshooting and coordination without requiring real-time analysis.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system creates a graphical representation (dependency graph) that copies and visualizes the complex relationships between microservices, resources, and dependencies. This visual copy makes it easy to understand and communicate system architecture without requiring direct inspection of source code or configuration files.

Inventive Principle:
Principle #26Copying

2Ease of operation

If detailed dependency tracking is implemented across microservices, then coordination between application teams is improved, but system complexity increases

Engineering Contradiction:
ImproveCoordination between application teamsVSAvoidSystem complexity for managing dependencies
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The system introduces a dependency graph as an intermediary representation that mediates between complex microservice dependencies and human understanding. This graphical model serves as a shared language and coordination tool for application teams, simplifying the management and communication of inter-service relationships without requiring teams to directly handle the underlying complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20260017170A1Context aggregation and association for containerized applications
Publication Date: 2026.01.15 DELL PROD LP
  • US20260017170A1 patent drawing
  • US20260017170A1 patent drawing
  • US20260017170A1 patent drawing

AI summary

A system can perform static analysis of source code and at least one configuration file to identify dependencies of microservices of a microservices architecture, wherein the source code is configured to be executable as the microservices architecture, wherein the at least one configuration file comprises a key-value pair that identifies a resource of resources, and where the source code invokes the resource via at least part of the key-value pair. The system can create a dependency graph based on the dependencies, wherein respective nodes of the dependency graph represent corresponding respective resources of the resources, and wherein respective edges of the dependency graph represent corresponding respective dependencies of the dependencies between the respective resources. The system can display a graphical representation of the dependency graph in a user interface.