IP Library Granted Patent US 9,614,794
Granted Patent B2
US 9,614,794 · App. 14/013,136 · Granted Apr 4, 2017

Message consumer orchestration framework

Inventors: Sajithkumar Kizhakkiniyil (Pleasanton, CA); Narender Vattikonda (San Jose, CA); Jeevan Pingali (Bangalore, IN); Rahul Kumar (Bangalore, IN); Krishnam Chapa (Karnataka, IN)
Assignee: Apollo Education Group, Inc.
H04L51/06
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,614,794
App. No.
14/013,136
Granted
Apr 4, 2017
Kind
B2
Abstract

In a decoupled messaging system, a producer device sends produced messages to a message fabric. The message fabric either stores the received message in designated queues, from which consumer devices may retrieve the messages, or broadcasts the messages to consumer devices that subscribe to topics assigned to the messages. A message consumption orchestrator service gathers capabilities information for the message producer, the message fabric, and the message consumer, and configures resources allocated for the message consumer to more fully optimize message throughput. Further, the message consumption orchestrator identifies patterns in changes of the rate of produced messages, i.e., through analysis of historical data and/or received information. The message consumption orchestrator configures resources for the message consumer to account for predicted need based on the identified patterns.

Claims (51)

1. A method comprising:

using a message consumer executing on a particular device to pull, from a message fabric, messages that were produced by a message producer;

gathering capabilities information for at least one of:

the message producer,

the message fabric, or

the message consumer;

based, at least in part, on the capabilities information, automatically executing at least one consumer clone, of the message consumer, on one or more devices, other than the particular device;

wherein, prior to executing the at least one consumer clone, the one or more devices are not being used to pull messages from the message fabric for the message consumer;

wherein automatically executing the at least one consumer clone, of the message consumer, on one or more devices, other than the particular device is further based, at least in part, on a target pull rate for the message consumer pulling messages from the message fabric;

wherein the method is performed by one or more computing devices.

2. The method of claim 1 , further comprising setting the target pull rate by:

determining whether a particular queue within the message fabric has more than a threshold number of messages stored therein;

in response to determining that the particular queue within the message fabric has more than the threshold number of messages stored therein, setting the target pull rate to be faster than a rate that the message producer is currently sending messages to the particular queue.

3. A method comprising:

based on historical information, identifying a pattern in timing of changes in a rate of message flow between a message producer and a message fabric;

based, at least in part, on the pattern, predicting a future change to a flow of messages from the message producer through the message fabric to a message consumer;

in response to predicting the future change to the flow of messages, automatically scheduling a future adjustment of consumer resources allocated to the message consumer;

wherein the future adjustment is scheduled to occur at a scheduled adjustment time;

in response to reaching the scheduled adjustment time, and based, at least in part, on the predicted change, automatically adjusting consumer resources allocated to the message consumer;

receiving at least a portion of the historical information from a third party information source;

wherein the historical information comprises information identifying two or more critical dates of a certain type;

wherein a first critical date of the two or more critical dates occurred in the past;

wherein predicting the future change to the flow of messages from the message producer through the message fabric to the message consumer comprises:

determining that, on the first critical date, the flow of messages had a particular peak rate, and based, at least in part, on the type of the first critical date being the same as the type of a second critical date, of the two or more critical dates, predicting that the second critical date of the two or more critical dates is the date of the future change to the flow of messages;

wherein the method is performed by one or more computing devices.

4. The method of claim 3 , further comprising gathering at least a portion of the historical information from one or more of the message producer, the message fabric, or the message consumer.

5. One or more non-transitory computer readable media storing one or more sequences of instructions which, when executed by one or more processors, cause:

using a message consumer executing on a particular device to pull, from a message fabric, messages that were produced by a message producer;

gathering capabilities information for at least one of:

the message producer,

the message fabric, or

the message consumer;

based, at least in part, on the capabilities information, automatically executing at least one consumer clone, of the message consumer, on one or more devices, other than the particular device;

wherein, prior to executing the at least one consumer clone, the one or more devices are not being used to pull messages from the message fabric for the message consumer;

wherein automatically executing the at least one consumer clone, of the message consumer, on one or more devices, other than the particular device is further based, at least in part, on a target pull rate for the message consumer pulling messages from the message fabric.

6. The one or more non-transitory computer readable media of claim 5 , wherein the one or more sequences of instructions further comprise instructions which, when executed by one or more processors, cause setting the target pull rate by:

determining whether a particular queue within the message fabric has more than a threshold number of messages stored therein;

in response to determining that the particular queue within the message fabric has more than the threshold number of messages stored therein, setting the target pull rate to be faster than a rate that the message producer is currently sending messages to the particular queue.

7. One or more non-transitory computer readable media storing one or more sequences of instructions which, when executed by one or more processors, cause:

based on historical information, identifying a pattern in timing of changes in a rate of message flow between a message producer and a message fabric;

based, at least in part, on the pattern, predicting a future change to a flow of messages from the message producer through the message fabric to a message consumer;

in response to predicting the future change to the flow of messages, automatically scheduling a future adjustment of consumer resources allocated to the message consumer;

wherein the future adjustment is scheduled to occur at a scheduled adjustment time;

in response to reaching the scheduled adjustment time, and based, at least in part, on the predicted change, automatically adjusting consumer resources allocated to the message consumer;

receiving at least a portion of the historical information from a third party information source;

wherein the historical information comprises information identifying two or more critical dates of a certain type;

wherein a first critical date of the two or more critical dates occurred in the past;

wherein predicting the future change to the flow of messages from the message producer through the message fabric to the message consumer comprises:

determining that, on the first critical date, the flow of messages had a particular peak rate, and

based, at least in part, on the type of the first critical date being the same as the type of a second critical date, of the two or more critical dates, predicting that the second critical date of the two or more critical dates is the date of the future change to the flow of messages.

8. The one or more non-transitory computer readable media of claim 7 , wherein the one or more sequences of instructions further comprise instructions which, when executed by one or more processors, cause gathering at least a portion of the historical information from one or more of the message producer, the message fabric, or the message consumer.

Assignments (6)
SECURITY INTEREST Recorded Nov 13, 2025
From: THE UNIVERSITY OF PHOENIX, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 072896/0972 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 26, 2020
From: APOLLO EDUCATION GROUP, INC.
To: THE UNIVERSITY OF PHOENIX, INC.
Reel/Frame 053308/0512 →
RELEASE OF SECURITY INTEREST Recorded Jul 15, 2019
From: EVEREST REINSURANCE COMPANY
To: APOLLO EDUCATION GROUP, INC.
Reel/Frame 049753/0187 →
SECURITY INTEREST Recorded Feb 14, 2017
From: APOLLO EDUCATION GROUP, INC.
To: EVEREST REINSURANCE COMPANY
Reel/Frame 041750/0137 →
CHANGE OF NAME Recorded Jan 29, 2014
From: APOLLO GROUP, INC.
To: APOLLO EDUCATION GROUP, INC.
Reel/Frame 032134/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2013
From: KIZHAKKINIYIL, SAJITHKUMAR; VATTIKONDA, NARENDER; PINGALI, JEEVAN; KUMAR, RAHUL; CHAPA, KRISHNAM
To: APOLLO GROUP, INC.
Reel/Frame 031108/0073 →
Priority Claims (1)
IN 3096/CHE/2013 · Jul 11, 2013 · national
Continuity (1)
Related Publication 20150019655A1 · Jan 15, 2015