Channel Mediation for Publish-Subscribe Services
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
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
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
Data Source
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.


