MQTT Broker Election via Client Voting Attributes

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional MQTT systems lack a process to recover from a broker becoming unavailable, leading to temporary inoperability of the channel and MQTT bus.

Innovation Solution

Implementing a system where client devices maintain attributes and cast votes to elect a new broker based on attribute values, ensuring unanimous selection and minimizing downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If a conventional MQTT broker is used, then the system can maintain simple architecture, but the system becomes vulnerable to broker failure and requires manual reconfiguration

Engineering Contradiction:
Improvebroker availabilityVSAvoidsystem architecture
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The MQTT clients autonomously elect a new broker when the current broker becomes unavailable, without requiring external intervention or complex failover mechanisms. Each client maintains attributes of other clients and casts votes based on attribute values, enabling the system to self-heal from broker failures.

Inventive Principle:
Principle #25Self-service

2Reliability

If manual reconfiguration is implemented for broker failure, then the system can maintain simple structure, but the system experiences downtime and requires human intervention

Engineering Contradiction:
Improvesystem continuityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

MQTT clients pre-establish attributes and voting mechanisms before broker failure occurs. When the broker becomes unavailable, the election process can immediately commence using pre-collected attribute data, eliminating the need for time-consuming manual reconfiguration or complex real-time discovery protocols.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If clustering services are used to prevent broker failure, then the system achieves high availability, but the system becomes complex and requires additional infrastructure

Engineering Contradiction:
Improvebroker availabilityVSAvoidinfrastructure requirements
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the broker election functionality from complex clustering infrastructure and implements it directly within MQTT clients using simple attribute comparison and voting. This eliminates the need for external clustering services while maintaining automatic failover capability.

Inventive Principle:
Principle #2Taking out (Extraction)

4Extent of automation

If automatic broker election is implemented, then the system achieves self-healing capability, but the system requires complex attribute management and voting protocols

Engineering Contradiction:
Improveautomatic failoverVSAvoidelection protocol
Core Design Contradiction:
Extent of automationVSDevice complexity

Solution Approach 1:

The patent uses quantitative attribute values to determine broker election outcomes. Clients compare numerical attributes of candidate brokers and cast votes based on these parameter comparisons, transforming a complex qualitative decision-making process into a simple quantitative evaluation that can be automated.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11803496B2Systems, apparatus, and methods for electing a new broker for a channel on an MQTT bus
Publication Date: 2023.10.31 LENOVO SWITZERLAND INTERNATIONAL GMBH
  • US11803496B2 patent drawing
  • US11803496B2 patent drawing
  • US11803496B2 patent drawing

AI summary

Systems, apparatus, and methods that can elect a broker on a Message Queuing Telemetry Transport (MQTT) bus are disclosed. One system includes an MQTT bus and a set of client devices on the MQTT bus. Each client device maintains a set of attributes for each other client device and casts one or more votes for a particular client device on the MQTT bus to elect the particular client device as a new broker on the MQTT bus in response to a current broker on the MQTT bus becoming unavailable. The votes cast for the particular client device are based on a first value corresponding to one or more attributes for the particular client device relative to respective second values to the corresponding attribute(s) for each of the other client devices on the MQTT bus as calculated by each respective client device on the MQTT bus.