Dynamic Microservice Orchestration via Dependency Graphs

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In microservice architectures, existing orchestration methods become complex and inefficient as the number of predefined rules increases, failing to handle dynamic changes and requiring manual de-confliction, and do not allow for dynamic scaling of microservices to handle operational limits or failures.

Innovation Solution

A dynamic orchestration system that uses a dependency graph to distribute tasks among microservices, with a message dispatcher and scaling manager to dynamically adjust the number of microservice instances based on task demands and operational limits, ensuring resilient communication and task completion.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If predefined rules and paths are used to facilitate communication between microservices, then the orchestration can be structured and manageable, but the system becomes increasingly complex and requires manual de-confliction as the number of rules increases exponentially

Engineering Contradiction:
Improveorchestration manageabilityVSAvoidorchestration complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent introduces a central orchestration component that acts as an intermediary between microservices and the service mesh. This intermediary manages the dependency graph and routing decisions, reducing the complexity burden from individual microservices while maintaining structured communication through centralized control of task distribution and dependency resolution.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements feedback mechanisms where the central orchestration component receives status information from microservices about task completion and dependencies. This feedback loop enables dynamic adjustment of task distribution and routing decisions, allowing the system to adapt to changing conditions without manual intervention and reduce complexity through automated conflict resolution.

Inventive Principle:
Principle #23Feedback

2Reliability

If predefined rules are used for orchestration, then communication paths can be established, but the system cannot handle dynamic changes in applications effectively

Engineering Contradiction:
Improvecommunication reliabilityVSAvoiddynamic change handling
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic orchestration where the central component can adapt task distribution and routing decisions in real-time based on current system state, microservice availability, and dependency status. This dynamic approach replaces static predefined rules with flexible, condition-based decision-making that can respond to changing application requirements while maintaining reliable communication through structured dependency management.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system performs preliminary actions by pre-establishing the dependency graph structure and task distribution logic before execution. This preliminary structuring provides reliable communication paths while the actual execution can dynamically adapt to changes. The dependency graph is built in advance with all relationships defined, but the actual task routing and microservice selection can respond to dynamic conditions during runtime.

Inventive Principle:
Principle #10Preliminary action

3Ease of manufacture

If microservice instances are fixed, then the architecture is simple to deploy, but the system cannot dynamically scale to handle operational limits or failures

Engineering Contradiction:
Improvedeployment simplicityVSAvoidscaling capability
Core Design Contradiction:
Ease of manufactureVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic scaling capabilities where the central orchestration component can add or remove microservice instances based on operational needs, task queue depth, and system load. This dynamic approach maintains deployment simplicity through automated instance management while providing the adaptability to scale horizontally by spawning additional microservice instances as needed without complex manual configuration.

Inventive Principle:
Principle #15Dynamics

4Reliability

If manual de-confliction of rules is required, then rule conflicts can be resolved, but the operational time and effort increase significantly

Engineering Contradiction:
Improverule conflict resolutionVSAvoidmanual intervention time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system implements self-service conflict resolution where the central orchestration component automatically detects and resolves rule conflicts through the dependency graph structure and automated routing logic. The system independently manages task distribution decisions, dependency resolution, and microservice coordination without requiring manual intervention, thereby maintaining reliable conflict resolution while eliminating the time loss associated with manual de-confliction efforts.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11288091B2Dynamic orchestration in a mircroservice architecture
Publication Date: 2022.03.29 SAP SE
  • US11288091B2 patent drawing
  • US11288091B2 patent drawing
  • US11288091B2 patent drawing

AI summary

Systems, methods, and computer program products are described for orchestrating communication between containers or microservices of a multi-container architecture. Data having a plurality of tasks and associated dependencies among the plurality of tasks is received. A dependency graphs is generated that correlates each dependency of the associated dependencies with a plurality of microservices. Each microservice is configured to execute a task of the plurality of tasks. Each task is distributed, based on the generated dependency graph, to a respective microservice for execution. A plurality of messages are sequentially received from the plurality of microservices. Each message includes an output of each microservice for a respective task. Output data having a combination of the output of each microservice is provided for further characterization.