Routing provider queues
AssigneeTwilio Inc.
InventorsPeter Michael Janovsky, Marcus Carlsson, Andrei Osochenko
Life of this patent
Estimating the term…
Abstract
Disclosed are systems, methods, and non-transitory computer-readable media for routing provider queues. A message routing system receives a request to transmit a message to a destination device and selects a first routing provider from a plurality of routing providers that each have a separate message queue of a plurality of message queues, wherein the first routing provider is selected based on one or more characteristics of each of the plurality of routing providers. The message routing system adds the message into a first message queue designated to the first routing provider, and causes the message to be dequeued from the first message queue to the first routing provider for delivery to the destination device.
Claims18
A method comprising:
- receiving, at a message routing system, a request of a user of the message routing system to transmit a message to a destination device, wherein the destination device is a client device of a recipient;
- selecting, at the message routing system, a first routing provider from a plurality of routing providers to transmit the message of the user to the client device of the recipient, wherein the message routing system, coupled to each of the plurality of routing providers via a network, maintains a separate message queue of a plurality of message queues for each of the plurality of routing providers, and wherein the first routing provider is selected to transmit the message of the user to the client device of the recipient based at least on performance data of each of the plurality of routing providers, the performance data indicating a rate at which messages are dequeued from each message queue at the message routing system to a corresponding routing provider;
- adding, at the message routing system, the message into a first message queue designated to the first routing provider;
- receiving, by the message routing system and from the first routing provider, a dequeue request indicating that the first routing provider has available bandwidth exceeding a predefined threshold, to process a new message;
- responsive to the dequeue request, determining, by the message routing system and based on a predefined order, that the message is to be dequeued from the first message queue designated to the first routing provider;
- and
- dequeuing, by the message routing system, the message from the first message queue to the first routing provider for delivery to the client device of the recipient.
A system comprising:
- one or more computer processors;
- and
- one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the one or more computer processors to perform operations comprising:
- receiving, at a message routing system, a request of a user of the message routing system to transmit a message to a destination device, wherein the destination device is a client device of a recipient;
- selecting, at the message routing system, a first routing provider from a plurality of routing providers to transmit the message of the user to the client device of the recipient, wherein the message routing system, coupled to each of the plurality of routing providers via a network, maintains a separate message queue of a plurality of message queues for each of the plurality of routing providers, and wherein the first routing provider is selected to transmit the message of the user to the client device of the recipient based at least on performance data of each of the plurality of routing providers, the performance data indicating a rate at which messages are dequeued from each message queue at the message routing system to a corresponding routing provider;
- adding, at the message routing system, the message into a first message queue designated to the first routing provider;
- receiving, by the message routing system and from the first routing provider, a dequeue request indicating that the first routing provider has available bandwidth exceeding a predefined threshold, to process a new message;
- responsive to the dequeue request, determining, by the message routing system and based on a predefined order, that the message is to be dequeued from the first message queue designated to the first routing provider;
- and
- dequeuing, by the message routing system, the message from the first message queue to the first routing provider for delivery to the client device of the recipient.
A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of one or more computing devices, cause the one or more computer processors to perform operations comprising:
- receiving, at a message routing system, a request of a user of the message routing system to transmit a message to a destination device, wherein the destination device is a client device of a recipient;
- selecting, at the message routing system, a first routing provider from a plurality of routing providers to transmit the message of the user to the client device of the recipient, wherein the message routing system, coupled to each of the plurality of routing providers via a network, maintains a separate message queue of a plurality of message queues for each of the plurality of routing providers, and wherein the first routing provider is selected to transmit the message of the user to the client device of the recipient based at least on performance data of each of the plurality of routing providers, the performance data indicating a rate at which messages are dequeued from each message queue at the message routing system to a corresponding routing provider;
- adding, at the message routing system, the message into a first message queue designated to the first routing provider;
- receiving, by the message routing system and from the first routing provider, a dequeue request indicating that the first routing provider has available bandwidth exceeding a predefined threshold, to process a new message;
- responsive to the dequeue request, determining, by the message routing system and based on a predefined order, that the message is to be dequeued from the first message queue designated to the first routing provider;
- and
- dequeuing, by the message routing system, the message from the first message queue to the first routing provider for delivery to the client device of the recipient.
Dependencies are inferred from the claim text.