Graph-Based Java Workflow Orchestration for Flexible Transaction Flows
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in efficiently coordinating transaction processing across multiple components due to varying transaction flows, leading to high maintenance and extension costs from additional Boolean logic and frequent refactoring.
Innovation Solution
A lightweight Java workflow orchestration library using a graph data structure to represent operations, data inputs, and handler addresses, allowing dynamic graph creation and traversal based on input and user needs, with machine learning for adaptive graph generation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If additional Boolean logic and branches are added to code to create reuse between existing features, then adaptability to different transaction flows is improved, but device complexity and maintenance difficulty increase
Solution Approach 1:
The system segments the transaction flow into discrete nodes (representing operations) and edges (representing transitions). Each node is an independent unit that can be executed by handlers, allowing the complex transaction orchestration to be divided into manageable, reusable segments that can be组合 in different configurations without increasing code complexity.
Solution Approach 2:
The patent introduces an intermediary orchestration layer that sits between the transaction initiator and the handlers. This intermediary manages the execution of nodes and edges, handling the complexity of flow control and coordination centrally, thereby shielding the handlers from complexity while maintaining high adaptability.
2Adaptability or versatility
If retooling existing applications is performed to consider a given flow and take alternate paths, then adaptability to regulatory requirements is improved, but loss of time and productivity decrease
Solution Approach 1:
The system enables dynamic configuration of transaction flows through the graph structure. Instead of static code modifications, the flow can be dynamically adjusted by selecting different paths through the graph of nodes and edges, allowing rapid adaptation to new regulatory requirements without time-consuming refactoring cycles.
Solution Approach 2:
The patent allows changing the execution parameters and flow paths through configuration of the graph structure. By modifying which nodes are connected and how edges are traversed based on regulatory parameters, the system adapts to new requirements without changing the underlying handler code, eliminating the need for time-consuming retooling.
3Adaptability or versatility
If major refactoring or total rewrites of systems are performed, then adaptability to new transaction flows is improved, but loss of time and productivity increase
Solution Approach 1:
The system segments transaction flow logic into independent nodes that can be executed by handlers. This segmentation allows new transaction flows to be added by simply adding new nodes and edges to the graph without affecting existing functionality, eliminating the need for major refactoring and maintaining high productivity during implementation.
Solution Approach 2:
The graph-based orchestration framework provides a universal structure that can handle multiple transaction flow types through a single unified model. Existing handlers can serve multiple purposes by being invoked from different nodes, and new flows can be accommodated by reusing existing handlers in different configurations, avoiding the need for complete system rewrites.
Data Source
AI summary
A method for executing a process may include: receiving a process comprising data to execute from a sub-system; identifying a process graph for the process to execute, the process graph comprising a plurality of nodes connected by edges, each of the plurality of nodes in the process graph represents a type of operation to perform, an identification of data input, and an address for a handler; retrieve the identified process graph from a process graph source; traverse the identified process graph to a first node; call a first handler identified by the first node with the data; receive a first result; select, based on the result, one of a plurality of edges from the first node to a second node; call a second handler identified by the second node with the first result and the data; receive a second result; and output the second result to the sub-system.

