Asynchronous Message Broker Bulk Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional asynchronous processing systems lack support for bulk handling and bulk dequeuing of messages, leading to inefficiencies in high-volume processing environments and failing to ensure consistency and availability across data stores.

Innovation Solution

Implementing a system that allows for bulk processing and dequeuing of messages by using a broker to enqueue and dequeue messages as a group, with a secondary store to maintain message state and ensure atomicity and availability, and utilizing push and pull connections to manage message processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional broker-based asynchronous processing is used to handle messages one at a time, then system simplicity is maintained, but processing efficiency and productivity deteriorate in high-volume environments

Engineering Contradiction:
Improvemessage processing throughputVSAvoidsystem architecture complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple individual message handling operations into a single bulk processing operation. The broker receives and enqueues multiple messages as a group, and the processing system retrieves and processes multiple messages in a single transaction, combining what would otherwise be separate operations into one unified bulk operation, thereby improving throughput without proportionally increasing complexity

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system performs preliminary actions by pre-fetching multiple messages from the broker before processing begins. The processing system retrieves a batch of messages in advance, prepares them for processing, and then executes the bulk operation, allowing the system to pipeline operations and reduce idle time between processing cycles

Inventive Principle:
Principle #10Preliminary action

2Productivity

If bulk processing is implemented without proper transactional support, then processing efficiency improves, but data consistency and reliability deteriorate

Engineering Contradiction:
Improvebulk processing speedVSAvoidmessage processing consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent introduces an intermediary processing layer that sits between the broker and the final processing logic. This intermediary implements transactional boundaries, ensuring that bulk operations are either fully committed or fully rolled back. The intermediary manages the transaction context, coordinates the bulk processing, and ensures that consistency is maintained across the entire batch operation

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system implements beforehand cushioning by establishing transactional safeguards and error handling mechanisms before bulk processing begins. Checkpoints and validation logic are prepared in advance, allowing the system to detect and recover from errors without compromising the entire batch, thereby protecting reliability while maintaining high processing speeds

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Reliability

If individual message dequeuing is used to ensure transactionality, then data consistency is maintained, but processing overhead increases and productivity decreases

Engineering Contradiction:
Improvetransactional integrityVSAvoidmessage processing throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent combines multiple individual dequeue operations into a single bulk dequeue operation. Instead of retrieving and processing messages one at a time with separate transactional boundaries, the system retrieves multiple messages in a single operation with a single transactional context, eliminating the repetitive overhead of individual operations while maintaining transactional integrity across the entire batch

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The system enables continuity of useful action by maintaining a sustained bulk processing flow. Once a bulk operation is initiated, the system continues processing through the entire batch without interruption or repeated setup overhead, keeping the processing pipeline full and eliminating idle periods between individual message operations

Inventive Principle:
Principle #20Continuity of useful action

4Productivity

If conventional message queue brokers are used without bulk handling support, then ease of operation is maintained, but processing efficiency and time utilization deteriorate

Engineering Contradiction:
Improveprocessing throughputVSAvoidsystem operation simplicity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent enhances the broker's functionality to include bulk operations while maintaining backward compatibility with individual message operations. The broker implements a universal interface that supports both traditional single-message enqueue/dequeue operations and new bulk operations, allowing the same system to handle different workloads appropriately without requiring separate systems or complex configuration

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

Data Source

PatentUS10019297B2Systems and methods for implementing bulk handling in asynchronous processing
Publication Date: 2018.07.10 SALESFORCE INC
  • US10019297B2 patent drawing
  • US10019297B2 patent drawing
  • US10019297B2 patent drawing

AI summary

Systems and methods for implementing bulk handling in asynchronous processing are described. For example, an exemplary system includes a processor and a memory to execute instructions at the system; a broker to enqueue received messages; a push connection from the broker to a thread, in which the broker is to push an initial message to the thread for processing; a pull connection from the thread to the broker, in which the thread is to request one or more additional messages for bulk processing with the initial message from the broker; a query interface to issue a database query from the thread to a data store, the database query specifying the initial message and the one or more additional messages as a set of messages to obtain a lock for the set of messages; and a message processing engine to handle the set of messages in bulk based on whether the lock for the set of messages is obtained.