Dynamic AMQP Message Broker Routing via Property Keys

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The Advanced Message Queuing Protocol (AMQP) standard lacks guidance on optimum practices for asynchronous messaging paradigms, leading to limited functionality and requiring manual definition of messaging entities and infrastructure, which results in inefficient message processing and increased payload sizes due to additional message broker message headers.

Innovation Solution

A dynamic message brokering module transforms initial messages into AMQP format by generating binding and routing keys, interacting with AMQP clients to create queues and bind them to exchanges, enabling efficient message routing and subscription for clients.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional approaches manually define messaging entities and infrastructure, then functionality is provided, but device complexity and manual configuration effort increase

Engineering Contradiction:
Improvemessaging functionalityVSAvoidmanual configuration
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system automatically discovers message formats and defines messaging entities (queues, exchanges, bindings) based on message content without requiring manual configuration. The message broker autonomously creates the necessary infrastructure by analyzing message properties and routing requirements, eliminating the need for developers to manually set up messaging infrastructure.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The messaging infrastructure is dynamically created and modified based on runtime message content rather than being statically defined beforehand. Queues, exchanges, and bindings are automatically generated as messages arrive, allowing the system to adapt its structure to the actual messaging needs without pre-configuration.

Inventive Principle:
Principle #15Dynamics

2Ease of operation

If traditional approaches use additional message broker message headers, then message routing is enabled, but payload size increases

Engineering Contradiction:
Improvemessage routingVSAvoidpayload size
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The system extracts routing information directly from the message payload and properties rather than adding separate header fields. By utilizing existing message attributes and content for routing decisions, the approach eliminates redundant header data while maintaining effective message routing capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If AMQP standard provides low level message propagation, then protocol compliance is achieved, but functionality for business applications is limited

Engineering Contradiction:
Improveprotocol complianceVSAvoidbusiness application functionality
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The system introduces an intelligent intermediary layer between the low-level AMQP protocol and business applications. This layer automatically handles protocol compliance while providing high-level abstractions and automated infrastructure management that simplifies business application development, bridging the gap between protocol requirements and application needs.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10728181B2Advanced message queuing protocol (AMQP) message broker and messaging client interactions via dynamic programming commands using message properties
Publication Date: 2020.07.28 DELL PROD LP
  • US10728181B2 patent drawing
  • US10728181B2 patent drawing
  • US10728181B2 patent drawing

AI summary

A method and an information handling system (IHS) transform an initial message having an identified protocol format to an encapsulated message having an advanced message queuing protocol (AMQP) format. A dynamic message brokering (DMB) module interacts with an AMQP client application to generate a binding key and a routing key corresponding to message attributes of the initial message. The DMB module dynamically applies one or more of the binding key and the routing key to respective programming command modules, including a provider module, to generate an AMQP client message which is forwarded to an AMQP server. The AMQP server creates a queue for messages having attributes that are identifiable within the received client message, and uses the binding key to bind the queue to a specified exchange. The AMQP server routes the received client message to the queue, using the routing key, enabling subscribers to retrieve the messages.