Scheduled Message Delivery in Scalable Messaging Systems
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current messaging systems lack the ability to schedule message delivery, requiring recipients to be online simultaneously with senders, which limits offline communication and message processing flexibility.
Innovation Solution
Implementing a messaging system with scheduled and non-scheduled message delivery capabilities, using a message entity with a scheduled sub-queue and an active sub-queue, where messages with specified delivery times are stored and processed accordingly, enabling offline communication and flexible message handling.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Speed
If messages are delivered immediately upon receipt, then message delivery speed is improved, but offline communication capability deteriorates
Solution Approach 1:
The system performs preliminary actions by storing messages in a scheduled sub-queue with predetermined delivery times before actual delivery occurs. This allows messages to be prepared and staged for future delivery, enabling both immediate delivery (when delivery time is now) and delayed delivery (when delivery time is in the future), thus resolving the contradiction between speed and offline capability
2Adaptability or versatility
If messages are stored for scheduled delivery, then offline communication capability is improved, but message delivery time delay increases
Solution Approach 1:
The system dynamically manages message delivery timing by allowing flexible delivery time specifications. Messages can be scheduled for immediate delivery (no delay) or any future time (controlled delay). The scheduled sub-queue dynamically tracks delivery times and automatically transitions messages to the active sub-queue when their delivery time arrives, making the delay parameter adjustable rather than fixed
3Adaptability or versatility
If a scheduled sub-queue is implemented, then message delivery flexibility is improved, but system complexity increases
Solution Approach 1:
The messaging system is segmented into distinct components: an active sub-queue for immediately deliverable messages and a scheduled sub-queue for future-dated messages. This segmentation isolates the complexity of scheduled delivery to a specific module while keeping the core messaging pathway simple. Each sub-queue can be independently managed, reducing overall system complexity despite added functionality
4Use of energy by moving object
If batch processing of scheduled messages is used, then system resource efficiency is improved, but message processing speed decreases
Solution Approach 1:
The system employs periodic batch processing where the activation metadata retrieval agent periodically scans the scheduled sub-queue for messages whose delivery time has arrived. Instead of continuously monitoring or processing individual messages, the system uses periodic batches to activate and transfer ready messages to the active sub-queue. This periodic approach optimizes resource usage by consolidating processing efforts while maintaining timely delivery through frequent enough batch intervals
Data Source
AI summary
Techniques are provided for scheduled and non-scheduled delivery of messages. A message directed to at least one consumer is received at a message entity. The message is determined to include a scheduled delivery time. The received message is stored in a scheduled sub-queue of the message entity. Activation metadata is retrieved and stored for any messages stored in the scheduled sub-queue that include a scheduled delivery time within a predetermined upcoming time period. If when the message is received, the scheduled delivery time of the message is within a current activation window, the activation metadata for the message may be extracted and stored immediately. The stored activation metadata is analyzed to determine a batch of messages in the scheduled sub-queue ready for delivery. The determined batch of messages is stored in an active sub-queue of the message entity, to be ready for delivery at the request of a consumer.


