Non-blocking message handling with phantom messages
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Blocking messaging in electronic communication networks leads to latency issues and increased computational loads due to the serial nature of message transmission, response receipt, and new message generation.
Innovation Solution
Implementing non-blocking messaging by allowing message transmitters to generate and transmit messages without waiting for responses from message receivers, using a cache to maintain the state of messages and facilitate rapid indexing and processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If blocking messaging is used to ensure complete resolution of requests, then message reliability is improved, but latency increases and productivity decreases
Solution Approach 1:
The receiver performs preliminary actions by maintaining a cache of processed messages and their resolution states before new messages arrive. This allows the receiver to immediately recognize and handle duplicate or already-resolved messages without waiting for explicit confirmation, thereby reducing latency while maintaining reliability.
Solution Approach 2:
The system implements feedback mechanisms where the receiver sends acknowledgment messages to the transmitter about message processing status. This feedback loop allows the transmitter to understand whether messages are being processed or already resolved, enabling more efficient message generation without compromising reliability.
2Measurement precision
If blocking messaging is used to wait for responses, then message processing accuracy is improved, but computational load increases
Solution Approach 1:
The receiver pre-processes and caches message states in advance, so when new messages arrive, the receiver can quickly determine resolution status without performing complete re-evaluation. This preliminary caching reduces computational load while maintaining processing accuracy.
Solution Approach 2:
Instead of fully processing every message through complete resolution cycles, the system uses partial processing by checking cached states and only performing necessary computations when messages are new or changed. This reduces overall computational load while maintaining sufficient processing accuracy.
3Loss of information
If blocking messaging is used to ensure request resolution, then data completeness is improved, but throughput decreases
Solution Approach 1:
The receiver maintains a cache of processed message states in advance, enabling rapid identification of already-resolved messages. This preliminary state maintenance allows the system to accept and process multiple messages concurrently without waiting for sequential resolutions, thereby increasing throughput while maintaining data completeness.
Solution Approach 2:
The system enables continuous message processing by allowing the transmitter to send messages without waiting for prior message resolutions. The receiver continuously processes incoming messages using cached state information, maintaining uninterrupted data flow and increasing throughput while ensuring completeness through state tracking.
Data Source
AI summary
A system may access a first message for processing over the electronic communication network, the first message being associated with at least two potentially conflicting message states. The system may generate, based on the first message, a phantom message for transmission to a message receiver, the phantom message indicating the two potentially conflicting message states. The system may transmit the phantom message to the message receiver and to a data distributor that provides data updates regarding messages to one or more participants. The data distributor may not provide a data update for phantom messages. The system may access a second message that would otherwise block the phantom message until a response is received from the message receiver regarding a processing result for the phantom message. The system may generate a non-blocking message based on the second message, and transmit the non-blocking message to the message receiver and the data distributor.


