In-Memory Message Sequencing via Segmented Queues
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing systems face challenges in maintaining a reliable and robust sequence of message delivery between service requestors and service providers, often requiring improved methods to ensure that messages are transmitted and processed in the correct order without errors.
Innovation Solution
An intermediary messaging system is introduced that uses memory queues, such as message sequencing and status queues, to manage messages destined for target systems, allowing for independent processing and transmission based on receipt order, ensuring messages are delivered in the correct sequence while minimizing database interactions and sorting overhead.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If messages are transmitted in sequence based on receipt order, then message delivery reliability is improved, but processing time and system complexity increase
Solution Approach 1:
The patent segments message handling into two independent queues: a sequencing queue that maintains receipt order for reliability, and a processing queue that handles messages in parallel without sequence constraints. This segmentation allows simultaneous processing of multiple messages while preserving delivery sequence, resolving the contradiction between reliability and processing time.
Solution Approach 2:
The patent introduces an intermediary messaging system that acts as a mediator between the source system and target system. This intermediary maintains the sequencing queue and processing queue, coordinating message flow to ensure sequence preservation while enabling parallel processing, thus improving both reliability and processing efficiency.
2Reliability
If database interactions are used for message sequencing, then message order is maintained, but system performance and cost increase
Solution Approach 1:
The patent replaces the mechanical database system with an in-memory queueing mechanism. The sequencing queue and processing queue are implemented using memory-based data structures rather than database tables, eliminating the need for database interactions while maintaining sequencing accuracy. This substitution dramatically improves system performance by removing I/O bottlenecks.
Solution Approach 2:
The patent performs preliminary sequencing operations in memory before any potential database interaction. By maintaining the sequencing queue in memory and only interacting with the database when absolutely necessary (e.g., persistence), the system minimizes database access overhead while ensuring message order is established early in the processing pipeline.
3Productivity
If parallel processing is implemented, then productivity is improved, but maintaining message sequence becomes more difficult
Solution Approach 1:
The patent divides the message handling system into distinct segmentation: the sequencing queue preserves the original receipt order, while the processing queue enables parallel processing. Each queue has a specific function, and the transition between them is managed through well-defined rules. This segmentation allows parallel processing to occur without compromising sequence integrity, as the sequencing queue serves as the authoritative source for message order.
Solution Approach 2:
The patent implements feedback mechanisms where the processing queue continuously monitors the sequencing queue to determine when messages are ready for processing. The system checks whether processing a message would violate sequence constraints, and only allows processing when it's safe to do so. This feedback loop maintains sequencing accuracy while maximizing parallel processing opportunities.
Data Source
AI summary
The present disclosure relates generally to techniques for facilitating reliable communication of messages between a source system (e.g., a client system) and a destination (e.g., a target system) via an intermediary messaging system. In certain embodiments, the intermediary messaging system receives messages to be sent to a target system. A plurality of entries corresponding to the messages are added in memory queued corresponding to the target system. A signal is received that the message is ready for transmission. The memory queues of the target system are accessed and a determination is made from the memory queues that no other message for the target system needs to be transmitted before the message. The message is transmitted after all messages that have to be transmitted prior to the first message are transmitted.


