Graph-Based Event-Driven Software Architecture
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Complex software systems lack an organizing principle that simplifies understanding and navigation of their processes and code bases, leading to high learning curves and reduced productivity for development and maintenance teams.
Innovation Solution
A graph-based representation of software programs using a directional acyclic graph (DAG) structure, where routing nodes decouple data flow from event processing, allowing for visualization and simulation of event flows, thereby streamlining development, maintenance, and operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of manufacture
If software programs are organized into separate layers based on technological affinity, then code modularity is improved, but understanding and exploration of core functionality becomes more difficult
Solution Approach 1:
The patent introduces a new dimension for organizing code - data-flow based organization that runs parallel to the traditional layer-based organization. This allows code to be viewed and navigated along data-flow paths (from input to output) while maintaining the benefits of layer separation, enabling developers to understand core functionality through data transformation pipelines without sacrificing modularity.
Solution Approach 2:
The patent introduces data-flow graphs as an intermediary representation that connects separate code layers. These graphs serve as a mediator that shows how data moves through different layers, making the relationships between layers visible and understandable while preserving the modular structure of each layer.
2Ease of manufacture
If code representing data flow is interleaved with data-processing steps, then implementation integration is improved, but discernment of data flow sequences becomes harder
Solution Approach 1:
The patent segments code into distinct data-flow representation elements and data-processing elements. The data-flow graph explicitly separates the sequence of data transformations from the implementation details of processing steps, allowing developers to trace data flow paths independently while maintaining integrated implementation through formal connections between graph nodes and code modules.
3Adaptability or versatility
If software programs become more complex with hundreds of computation tasks, then functionality and capabilities are improved, but understanding and maintenance difficulty increases
Solution Approach 1:
The patent adds a data-flow visualization dimension that projects the complex internal structure of software programs onto a comprehensible graph representation. This external representation allows developers to understand relationships between hundreds of computation tasks by viewing them as nodes and edges in a data-flow graph, reducing cognitive load while preserving full functionality.
4Adaptability or versatility
If event-driven architecture is used, then runtime flexibility is improved, but following and understanding execution order becomes harder
Solution Approach 1:
The patent performs preliminary action by constructing the data-flow graph at compile-time or design-time, before runtime execution. This static graph representation captures all possible execution paths and data flows, providing a comprehensive map that helps developers understand potential execution orders without being constrained by a single fixed sequence, thus maintaining runtime flexibility while improving understandability.
Data Source
AI summary
A method for modeling and execution of event-driven software applications. Its main parts are the routing graph model, the run time engine and optionally a user interface and automatic configuration modules. The routing graph is comprised of routing and data-processing nodes. Routing nodes are enriched with node-type specific event routing logic. Data-processing nodes process specific types of events and produce output events. The run time engine executes the routing graph model, based on the routing nodes logic and the data-processing nodes processing functions. The user interface component is used to compose and manage the routing graph configuration. The automatic configuration modules combine and configure predefined routing sub-graphs into a resulting routing graph model.


