Legal claims defining the scope of protection, as filed with the USPTO.
1. A method comprising: receiving, at an event processor, an event relevant to a topic; determining, from among a collection of channel servers, a plurality of channel servers that are handling the topic, wherein each channel server handles one or more topics subscribed to by one or more client devices; determining, using a number of the plurality of channel servers handling the topic, whether to distribute the received event using an event fan-out queue; and in response to determining to distribute the received event using the event fan-out queue: writing the received event from the event processor to the event fan-out queue, wherein the event fan-out queue is accessible by the plurality of channel servers; reading, by each of the plurality of channel servers, the received event from the event fan-out queue; and for each of the plurality of channel servers, sending the received event from the channel server to one or more particular client devices subscribed to the topic.
2. The method of claim 1 , further comprising initiating, for each of the one or more client devices, a subscription to the topic.
3. The method of claim 2 , wherein initiating, for each of the one or more client devices, the subscription to the topic comprises: receiving, from each of the one or more client devices, one or more subscription requests, wherein the one or more subscription requests include the topic; and initiating one or more subscriptions to the topic for the one or more client devices in response to the one or more received subscription requests, including, for each initiated subscription, adding a session identifier associated with the client device to a mapping of session identifiers to topics.
4. The method of claim 3 , wherein initiating the subscription includes sending a configuration packet to the client device, wherein the configuration packet includes one or more subscription timers unique to the client device.
5. The method of claim 4 , wherein the one or more subscription timers indicate that a user associated with the client device is idle, and wherein being idle can include the user not interacting with their client device for more than a threshold amount of time.
6. The method of claim 1 , wherein sending the received event from the plurality of channel servers to the one or more particular client devices associated with each respective channel server comprises: determining that the one or more particular client devices are not idle; and sending the received event from the channel server to the one or more particular client devices associated with the channel server.
7. The method of claim 1 , further comprising: determining that one or more first client devices are idle; and dissociating one or more channel servers from the one or more idle first client devices.
8. The method of claim 7 , further comprising: determining that the one or more first client devices are no longer idle; and reassociating the one or more channel servers with the one or more first client devices.
9. A system comprising: a plurality of channel servers each configured to send events relevant to a topic to one or more client devices subscribed to the topic; an event fan-out queue configured to communicate an event relevant to the topic to each of the plurality of channel servers; and an event processor configured to route the event to the event fan-out queue, wherein the event processor is configured to perform operations in response to receiving an event relevant to the topic comprising: determining, using a number of the plurality of channel servers, whether to distribute the event using the event fan-out queue; and in response to determining to distribute the received event using the event fan-out queue: writing the received event from the event processor to the event fan-out queue, wherein the event fan-out queue is accessible by the plurality of channel servers; reading, by each of the plurality of channel servers, the received event from the event fan-out queue; and for each of the plurality of channel servers, sending the received event from the channel server to one or more particular client devices subscribed to the topic.
10. The system of claim 9 , further comprising an edge server that is configured to initiate, for each of the one or more client devices, a subscription to the topic.
11. The system of claim 10 , wherein initiating, for each of the one or more client devices, the subscription to the topic comprises: receiving, from each of the one or more client devices, one or more subscription requests, wherein the one or more subscription requests include the topic; and initiating one or more subscriptions to the topic for the one or more client devices in response to the one or more received subscription requests, including, for each initiated subscription, adding a session identifier associated with the client device to a mapping of session identifiers to topics.
12. The system of claim 11 , wherein initiating the subscription includes sending a configuration packet to the client device, wherein the configuration packet includes one or more subscription timers unique to the client device.
13. The system of claim 12 , wherein the one or more subscription timers indicate that a user associated with the client device is idle, and wherein being idle can include the user not interacting with their client device for more than a threshold amount of time.
14. The system of claim 9 , wherein sending the received event from the plurality of channel servers to the one or more particular client devices associated with each respective channel server comprises: determining that the one or more particular client devices are not idle; and sending the received event from the channel servers to the one or more particular client devices associated with the channel server.
15. The system of claim 9 , wherein the channel servers are each further configured to perform operations comprising: determining that one or more first client devices are idle; and dissociating from the one or more idle first client devices.
16. The system of claim 15 , wherein the channel servers are each further configured to perform operations comprising: determining that the one or more first client devices are no longer idle; and reassociating with the one or more first client devices.
17. One or more computer storage media encoded with instructions that, when executed by one or more computers, cause the one or more computers to perform operations comprising: receiving, at an event processor, an event relevant to a topic; determining, from among a collection of channel servers, a plurality of channel servers that are handling the topic, wherein each channel server handles one or more topics subscribed to by one or more client devices; determining, using a number of the plurality of channel servers handling the topic, whether to distribute the received event using an event fan-out queue; and in response to determining to distribute the received event using the event fan-out queue: writing the received event from the event processor to the event fan-out queue, wherein the event fan-out queue is accessible by the plurality of channel servers; reading, by each of the plurality of channel servers, the received event from the event fan-out queue; and for each of the plurality of channel servers, sending the received event from the channel server to one or more particular client devices subscribed to the topic.
18. The computer storage media of claim 17 , wherein the operations further comprise initiating, for each of the one or more client devices, a subscription to the topic.
19. The computer storage media of claim 18 , wherein initiating, for each of the one or more client devices, the subscription to the topic comprises: receiving, from each of the one or more client devices, one or more subscription requests, wherein the one or more subscription requests include the topic; and initiating one or more subscriptions to the topic for the one or more client devices in response to the one or more received subscription requests, including, for each initiated subscription, adding a session identifiers associated with the client device to a mapping of session identifiers to topics.
20. The computer storage media of claim 19 , wherein initiating the subscription includes sending a configuration packet to the client device, wherein the configuration packet includes one or more subscription timers unique to the client device.
21. The computer storage media of claim 20 , wherein the one or more subscription timers indicate that a user associated with the client device is idle, and wherein being idle can include the user not interacting with their client device for more than a threshold amount of time.
22. The computer storage media of claim 17 , wherein sending the received event from the plurality of channel servers to the one or more particular client devices associated with each respective channel server comprises: determining that the one or more particular client devices are not idle; and sending the received event from the channel server to the one or more particular client devices associated with the channel server.
23. The computer storage media of claim 17 , wherein the operations further comprise: determining that one or more first client devices are idle; and dissociating one or more channel servers from the one or more idle first client devices.
24. The computer storage media of claim 23 , wherein the operations further comprise: determining that the one or more first client devices are no longer idle; and reassociating the one or more channel servers with the one or more first client devices.
Unknown
March 22, 2022
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.