Selective distribution of messages in a scalable, real-time messaging system
Abstract
Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for selective distribution of messages from a scalable, real-time messaging system. An example method includes: receiving query instructions from receiving query instructions from a subscriber client subscribed to a channel of a plurality of channels; applying, by one or more computer processors, the query instructions to a plurality of messages for the channel as the plurality of messages are received to generate filtered messages, wherein the filtered messages comprise messages of the plurality of messages that satisfy the query instructions; and transmitting the filtered messages to the subscriber client.
Claims
exact text as granted — not AI-modified1 . A method, comprising:
receiving query instructions from a subscriber client subscribed to a channel of a plurality of channels; applying, by one or more computer processors, the query instructions to a plurality of messages for the channel as the plurality of messages are received to generate filtered messages,
wherein the filtered messages comprise messages of the plurality of messages that satisfy the query instructions; and
transmitting the filtered messages to the subscriber client.
2 . The method of claim 1 , wherein the query instructions from the subscriber client comprise a request for a history of messages for the channel.
3 . The method of claim 1 , wherein the plurality of messages are received from a plurality of publisher clients.
4 . The method of claim 1 , wherein each message is associated with a particular one of the plurality of channels.
5 . The method of claim 1 , wherein applying the query instructions to the plurality of messages for the channel comprises:
filtering the plurality of messages based on one or n ore publisher clients.
6 . The method of claim 1 , wherein applying the query instructions to the plurality of messages for the channel comprises:
applying one or more of a filter, a function, or an aggregation to the plurality of messages for the channel as the messages are received to generate the filtered messages.
7 . The method of claim 1 , comprising:
building an index based on the query instructions; and using the index when applying the query instructions to the plurality of messages for the channel as the plurality of messages are received to generate the filtered messages.
8 . The method of claim 7 , comprising:
combining results of applying the query instructions to the plurality of messages as the plurality of messages are received with results of applying the query instructions to non-indexed messages received prior to receipt of the query instructions.
9 . The method of claim 1 , comprising:
maintaining a query frequency,
wherein the query frequency comprises a number of times the query instructions refer to a particular data element within the plurality of messages.
10 . The method of claim 9 , comprising:
storing an index if the query frequency exceeds a threshold, otherwise discarding the index after the index is applied for a defined period.
11 . A system, comprising:
one or more computer processors programmed to perform operations to:
receive query instructions from a subscriber client subscribed to a channel of a plurality of channels;
apply the query instructions to a plurality of messages for the channel as the plurality of messages are received to generate filtered messages,
wherein the filtered messages comprise messages of the plurality of messages that satisfy the query instructions; and
transmit the filtered messages to the subscriber client.
12 . The system of claim 11 , wherein the query instructions from the subscriber client comprise a request for a history of messages for the channel.
13 . The system of claim 11 , wherein the plurality of messages are received from a plurality of publisher clients.
14 . The system of claim 11 , wherein each message is associated with a particular one of the plurality of channels.
15 . The system of claim 11 , wherein to apply the query instructions to the plurality of messages for the channel the one or more computer processors are further to:
filter the plurality of messages based on one or more publisher clients.
16 . The system of claim 11 , wherein to apply the query instructions to the plurality of messages for the channel the one or more computer processors are further to:
apply one or more of a filter, a function, or an aggregation to the plurality of messages for the channel as the plurality of messages are received to generate the filtered messages.
17 . The system of claim 11 , wherein the operations are further to:
build an index based on the query instructions; and use the index when applying the query instructions to the plurality of messages for the channel as the messages are received to generate the filtered messages.
18 . The system of claim 17 , wherein the operations are further to:
combine results of applying the query instructions to the plurality of messages as the plurality of messages are received with results of applying the query instructions to non-indexed messages received prior to receipt of the query instructions.
19 . The system of claim 11 , wherein the operations are further to:
maintain a query frequency,
wherein the query frequency comprises a number of times the query instructions refer to a particular data element within the plurality of messages.
20 . A non-transitory computer-readable medium having instructions stored thereon that, when executed by one or more computer processors, cause the one or more computer processors to:
receive query instructions from a subscriber client subscribed to a channel of a plurality of channels; apply the query instructions to a plurality of messages for the channel as the plurality of messages are received to generate filtered messages,
wherein the filtered messages comprise messages of the plurality of messages that satisfy the query instructions; and
transmit the filtered messages to the subscriber client.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.