CRDT-Based Message Replication for Distributed Queues

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing message queuing systems, such as MQTT and Kafka, face challenges in ensuring consistent data replication across geographically distributed sites, leading to potential message loss and duplication, which is critical for IoT applications requiring reliable and efficient data processing.

Innovation Solution

The implementation of non-blocking asynchronous protocols and Convergent and Commutative Replicated Data Types (CRDTs) ensures strong eventual consistency in geo-redundant message queuing systems, using virtual time and clocks to manage message delivery and replication, and CRDTs to maintain data consistency without compromising performance.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If synchronous operations and global total order of operations are used to ensure consistency, then data consistency is improved, but performance and scalability deteriorate

Engineering Contradiction:
Improvedata consistencyVSAvoidperformance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the distributed system into multiple independent nodes that operate asynchronously. Each node maintains its own local state and processes operations independently, eliminating the need for global synchronization. This segmentation allows nodes to process operations in parallel without waiting for global consensus, thereby maintaining data consistency through eventual convergence while preserving high performance and scalability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system transitions from static synchronous operations to dynamic asynchronous operations. Nodes dynamically adjust their operation timing and can process requests independently without being constrained by global synchronization barriers. This dynamic approach allows the system to adapt to varying workloads and maintain high performance while ensuring eventual consistency through conflict resolution mechanisms.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If existing message brokers (RabbitMQ, ActiveMQ) are used for standalone applications, then ease of operation is improved, but adaptability to geographically-redundant distributed systems deteriorates

Engineering Contradiction:
Improveease of operationVSAvoidadaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system design incorporates universal components that can function in both standalone and geographically-distributed configurations. The message broker implementation includes built-in mechanisms for both local and remote replication, allowing it to adapt to different deployment scenarios. This multi-functionality enables the same system to serve simple standalone applications while also supporting complex geographically-redundant distributed systems, thereby improving both ease of operation and adaptability.

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

Solution Approach 2:

The message broker system dynamically adapts its behavior based on the deployment configuration. It can automatically adjust between synchronous and asynchronous operation modes, and between single-node and multi-node configurations. This dynamic adaptability allows the system to maintain ease of operation for simple deployments while providing the versatility needed for complex distributed scenarios.

Inventive Principle:
Principle #15Dynamics

3Productivity

If Apache Kafka is used for massive scale data processing, then productivity is improved, but reliability of end-to-end message delivery deteriorates due to message loss and duplication

Engineering Contradiction:
Improvemassive scale data processingVSAvoidend-to-end message delivery consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system implements comprehensive feedback mechanisms including acknowledgments, confirmations, and state synchronization protocols. When messages are replicated across distributed nodes, the system continuously monitors and verifies delivery status. If inconsistencies are detected (such as message loss or duplication), the feedback loop triggers automatic correction procedures. This feedback ensures that while maintaining high throughput for massive scale processing, the system achieves reliable end-to-end message delivery with strong eventual consistency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system replaces Kafka's weak consistency model with a stronger consistency mechanism based on CRDTs (Convergent and Commutative Replicated Data Types). This substitution fundamentally changes the approach to replication from best-effort to guaranteed consistency. The new mechanism uses mathematical properties of CRDTs to ensure that regardless of the order in which operations are applied at different nodes, the system converges to the same consistent state, thereby eliminating message loss and duplication while preserving massive scale processing capability.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS11063780B2Eventually consistent data replication in queue-based messaging systems
Publication Date: 2021.07.13 T MOBILE US INC
  • US11063780B2 patent drawing
  • US11063780B2 patent drawing
  • US11063780B2 patent drawing

AI summary

Techniques are disclosed herein for ensuring convergence of states for reliable message delivery in geographically distributed message queuing systems. The techniques include receiving a message at a local system, in which the message is associated with a new message topic. Further, at least one commutative replicated data type (CRDT) object associated with the message is created, wherein the at least one CRDT object corresponds to a unique message identifier (ID). A new message state corresponding to the message ID and the message topic is entered in a message state table, wherein the message state entry indicates a message state corresponding to the message. At least one CRDT object is recorded in a message queue. Thereafter, a list of subscribers including individual subscribers mapped to the new message topic is resolved from a message destinations object. The message is then delivered to at least one of the individual subscribers.