Decentralized Message Processing via Autonomous Instance Segmentation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Centralized message processing in messaging systems can lead to inefficiencies, such as 'zombie messages' where messages are not processed despite being intended to be, due to the reliance on a single dispatcher and lack of decentralized processing, resulting in performance issues and potential message bottlenecks.
Innovation Solution
Implementing decentralized message processing by generating process instances based on message types and properties, allowing multiple process instances to access a central queue, and using correlation queues to manage message processing, thereby avoiding the need for a central dispatcher and enabling efficient handling of messages.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Device complexity
If centralized message processing is used with a single dispatcher, then message distribution control is simplified, but message processing reliability deteriorates due to potential bottlenecks and zombie messages
Solution Approach 1:
The patent segments the centralized dispatcher function into multiple independent process instances that can autonomously access and process messages from the queue. Instead of one central dispatcher, multiple process instances (e.g., instance 1, instance 2, instance 3) independently evaluate messages and process them based on their capabilities and current state, eliminating the single point of failure and bottleneck.
Solution Approach 2:
Each process instance is equipped with the capability to independently evaluate messages, determine whether it can process them, and execute processing without requiring coordination through a central dispatcher. The process instances self-manage their own message processing decisions based on message properties and their own state, improving reliability through decentralized autonomous operation.
2Productivity
If multiple process instances access a central queue, then message processing throughput is improved, but system complexity increases due to decentralized coordination requirements
Solution Approach 1:
Multiple process instances are designed with universal capabilities to perform the same message evaluation and processing functions. Each instance can independently handle any message type within its capability set, allowing flexible parallel processing without requiring complex specialization or coordination mechanisms. This multi-functionality simplifies the system architecture compared to highly specialized components.
Solution Approach 2:
The system creates multiple copies of the process instance template, where each copy maintains the same core functionality and message processing logic. These copied instances independently access the central queue and process messages in parallel, increasing throughput without requiring complex inter-instance communication or coordination infrastructure.
3Adaptability or versatility
If process instances independently evaluate messages, then processing flexibility is improved, but message processing time increases due to repeated evaluation
Solution Approach 1:
Process instances perform partial evaluation of messages by first checking basic criteria (message type, required processing capability) before committing to full processing. This allows quick filtering of messages that clearly don't match instance capabilities, reducing the time spent on detailed evaluation while maintaining flexibility in processing suitable messages.
Solution Approach 2:
The system replaces sequential mechanical evaluation (one instance evaluates after another) with parallel evaluation mechanisms where multiple instances simultaneously assess messages. Message properties and instance capabilities are structured to enable efficient parallel comparison, reducing total evaluation time while preserving processing flexibility through property-based matching.
Data Source
AI summary
A message is buffered and processing statistics are associated with the message, including characterizations of whether a process instance is to process the message, a number of process instances handling the message, and a number of process instances that have processed the message. A process instance may be generated to process content of the message depending on the message. The message may be dequeued based on the processing statistics. For example, if the processing statistics indicate that no process instances are handling the message and no process instance is to process content of the message. Also, if the content of the message is to be processed by a threshold number of process instances, the message is only dequeued if the processing statistics indicate that the threshold number of process instances have processed the content of the message.


