Publish-Subscribe Framework for Asynchronous Application Execution
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
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
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.
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.
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
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.
Data Source
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.


