Provider-Specific Message Queues for Congestion-Aware Routing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current messaging systems use a single queue to allocate messages to multiple routing providers, leading to unwanted delays and unnecessary resource usage when messages are rejected, as they do not account for individual routing provider throughput or congestion.

Innovation Solution

Implementing individual routing provider queues for each provider, allocating messages based on available throughput and monitoring congestion levels to ensure efficient message delivery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single queue is used to allocate messages to multiple routing providers, then device complexity is reduced, but message delivery time increases due to rejections and delays

Engineering Contradiction:
Improvequeue structureVSAvoidmessage delivery time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The single shared queue is segmented into multiple dedicated queues, one for each routing provider. This allows messages to be pre-filtered and assigned to specific provider queues based on provider characteristics (e.g., throughput capacity, cost, reliability), eliminating the need for providers to reject messages and reducing delivery time while maintaining manageable complexity through modular queue structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system performs preliminary actions by evaluating routing provider characteristics and message requirements before message allocation. The message router assesses provider throughput, cost, and reliability metrics in advance, and pre-assigns messages to appropriate provider queues, preventing downstream rejections and delays that would occur with simple first-come-first-served allocation.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If messages are allocated to routing providers without monitoring throughput, then allocation speed increases, but resource usage efficiency decreases due to rejections

Engineering Contradiction:
Improvemessage allocation speedVSAvoidresource usage efficiency
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The system implements feedback mechanisms where routing providers report their current throughput status, message acceptance rates, and congestion levels back to the message router. This feedback loop enables the router to dynamically adjust message allocation rates and routes, maintaining high allocation speed while preventing provider overload and rejections, thus improving resource usage efficiency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The message allocation system transitions from static to dynamic operation by continuously monitoring routing provider throughput and adapting allocation decisions in real-time. The message router can dynamically adjust which provider queues receive messages, at what rates, based on current provider capacity, ensuring both fast allocation and efficient resource utilization without fixed rejection-prone allocation patterns.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS20250392636A1Routing provider queues
Publication Date: 2025.12.25 TWILIO INC
  • US20250392636A1 patent drawing
  • US20250392636A1 patent drawing
  • US20250392636A1 patent drawing

AI summary

Disclosed are systems, methods, and non-transitory computer-readable media for routing provider queues. A method includes receiving a request of a user of the message routing system to transmit a message to a destination device, selecting a first routing provider from a plurality of routing providers to transmit the message of the user to the client device of the recipient, adding the message into a first message queue designated to the first routing provider, receiving, from the first routing provider, a dequeue request indicating that the first routing is able to process a new message, determining that the message is to be dequeued from the first message queue designated to the first routing provider, dequeuing the message from the first message queue to the first routing provider, and causing the dequeued message to be provided to the first routing provider for transmission to the client device of the recipient.