Publish-Subscribe Framework for Asynchronous Application Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing application execution frameworks, such as those for electronic exchanges, face inefficiencies in processing speed due to sequential processing of stages, which limits transaction throughput and completion times.

Innovation Solution

A publish-subscribe message framework that enables asynchronous and simultaneous execution of processing stages across multiple processing resources, utilizing a shared memory and communication infrastructure to facilitate inter-stage communication, allowing for multi-process and multi-threaded execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If processing stages are executed sequentially in a main loop, then the application structure is simple and easy to implement, but the application execution speed and throughput are limited

Engineering Contradiction:
Improveapplication execution speedVSAvoidprocessing framework complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The application is decomposed into multiple independent processing stages (e.g., message parsing, validation, routing, processing) that can execute in parallel. Each stage operates independently on different portions of the workload, enabling simultaneous processing rather than sequential execution through a main loop.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A publish-subscribe message framework is introduced as an intermediary communication mechanism between processing stages. This framework enables asynchronous communication where stages publish results to topics and subscribers consume them, eliminating the need for complex synchronization while maintaining coordination between parallel stages.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If processing stages are executed asynchronously and simultaneously across multiple resources, then transaction throughput is improved and execution time is reduced, but the communication infrastructure and memory management complexity increases

Engineering Contradiction:
Improvetransaction throughputVSAvoidcommunication infrastructure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The shared memory space serves multiple functions simultaneously: it acts as both the data storage medium and the communication channel between processing stages. The publish-subscribe framework operates universally across all stages, providing a unified mechanism for asynchronous communication without requiring stage-specific communication protocols.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

Instead of copying entire datasets between stages, the system uses reference-based communication where messages contain references to data structures in shared memory. This reduces communication overhead and complexity while enabling efficient data sharing across parallel processing stages.

Inventive Principle:
Principle #26Copying

3Reliability

If a main loop with event queue is used, then the application can process events in order, but it cannot achieve optimal speedup under all circumstances

Engineering Contradiction:
Improveevent processing orderVSAvoidexecution speedup
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system dynamically adjusts processing based on message priorities and stage capabilities. Not all events must be processed in strict order - high-priority events can be handled asynchronously while lower-priority events wait in queues. This dynamic approach maintains reliability for critical operations while achieving speedup for non-critical path processing.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20240411626A1Publish-subscribe framework for application execution
Publication Date: 2024.12.12 NASDAQ TECHNOLOGY AB
  • US20240411626A1 patent drawing
  • US20240411626A1 patent drawing
  • US20240411626A1 patent drawing

AI summary

The described technology relates to a publish-subscribe message framework in which an application, decomposed to a plurality of processing stages, is run by executing respective processing stages of the application asynchronously and simultaneously with each other. Communications between the respective processing stages may exclusively be in accordance with the publish-subscribe execution model. The described publish-subscribe framework provides for processing stages to be executed in a multi-process and/or multi-threaded manner while also enabling the distribution of the processing stages to respective processing resources in a multi-processor/multi-core processing environment. An example electronic exchange application and a corresponding example exchange gateway application are described.