Channel Mediation for Publish-Subscribe Services

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Message-oriented middleware systems face inefficiencies due to the delivery of real-time updates to inactive channels, leading to wasted compute resources and network bandwidth, as messages are published regardless of active user connections.

Innovation Solution

Implementing channel mediation techniques that store channel records with status indicators, allowing only active channels to receive messages, thereby blocking message broadcasts to inactive channels until they become active, and updating status indicators based on client connections through notifications from the message transport service.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If messages are published to all channels regardless of active user connections, then real-time message delivery is ensured, but compute resources and network bandwidth are wasted on inactive channels

Engineering Contradiction:
Improvereal-time message deliveryVSAvoidcompute resources and network bandwidth
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system performs preliminary actions by maintaining channel status indicators that track whether channels are active or inactive. Before publishing a message, the system checks the status indicator to determine if the channel is active, thereby avoiding unnecessary message delivery to inactive channels and conserving compute resources and network bandwidth while ensuring reliable delivery to active channels

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The channel status indicator acts as an intermediary between the message publishing process and the actual message delivery. This intermediary component provides information about channel activity state, allowing the system to make informed decisions about whether to deliver messages, thus resolving the contradiction between ensuring delivery and conserving resources

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If channel status tracking is implemented to prevent message delivery to inactive channels, then resource efficiency is improved, but system complexity increases due to additional status management

Engineering Contradiction:
Improveresource efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments channel management by maintaining separate status indicators for each channel, allowing independent tracking of active and inactive channels. This segmentation enables efficient resource management by treating each channel's status independently, improving productivity through targeted message delivery while keeping the complexity manageable through modular status tracking

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The channel status indicators are automatically updated based on client connections and disconnections, making the status tracking self-managing. This self-service approach improves resource efficiency through automatic status-based message filtering while minimizing the increase in system complexity, as the status management occurs automatically without requiring complex external control mechanisms

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS11855962B2Mediating creation and use of channels of a publish-subscribe service
Publication Date: 2023.12.26 ATLASSIAN US INC
  • US11855962B2 patent drawing
  • US11855962B2 patent drawing
  • US11855962B2 patent drawing

AI summary

In one embodiment, a computer-implemented method comprises storing, in one or more data repositories, a plurality of channel records, each channel record including a channel identification (ID) and channel status indicator; receiving, at a computing device, a join request for a client account to join a channel, the join request including a first channel ID; determining whether a channel record of the plurality of channel records stored in the one or more data repositories includes a channel ID that matches the first channel ID; in response to determining that each channel record of the plurality of channel records does not include a channel ID that matches the first channel ID, creating and storing, in the one or more data repositories, a first channel record that includes: the first channel ID and a channel status indicator set to active; receiving, at the computing device, a first notification from a programmed message transport service that a channel corresponding to the first channel ID is set to inactive; in response to receiving the first notification, updating the channel status indicator of the first channel record in the one or more data repositories to indicate that the channel is inactive; receiving, at the computing device, a first request to broadcast a message to a channel corresponding to the first channel ID; in response to receiving the first request to broadcast the message to the channel corresponding to the first channel ID, determining that the channel status indicator of the first channel record is set to inactive and blocking the broadcast of the message to the programmed message transport service.