IP Library Granted Patent US 10,892,906
Granted Patent B2
US 10,892,906 · App. 16/589,618 · Granted Jan 12, 2021

Method, apparatus, and computer program product for a scalable group-based communication system with a reduced client memory footprint requirement

Inventors: Cyrus Katrak (San Francisco, CA); Mark Christian (San Francisco, CA)
Assignee: Slack Technologies, Inc.
H04L12/1818H04L9/3213H04L12/189H04L12/1813H04L12/5691H04L47/70H04L63/0807H04L63/0853H04L63/102H04L63/104H04L63/12H04L65/1023H04L65/1069H04L67/1004H04L67/1044H04W4/08H04W88/16
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 10,892,906
App. No.
16/589,618
Granted
Jan 12, 2021
Kind
B2
Abstract

Various embodiments are directed to systems and methods for efficient network distribution of group-based communication data transmissions comprising group-based communication data required by client devices within a group-based communication platform.

Claims (56)

1. A computing apparatus for implementing a group-based communication edge cache host, the computing apparatus comprising a processor and a memory storing instructions that, when executed by the processor, configure the apparatus to:

transmit, to a group-based communication server, a client device authorization token, the client device authorization token associated with a client device;

receive, from the group-based communication server, a first group-based communication data superset associated with the client device authorization token; and

transmit, using the processor and to the client device, a first group-based communication data subset extracted based in part on the first group-based communication data superset, the first group-based communication data subset comprising a first group-based communication minimum data set required by the client device to render a group-based communication interface.

2. The apparatus of claim 1 , wherein the group-based communication server verifies the client device authorization token prior to transmitting the first group-based communication data superset.

3. The apparatus of claim 1 , wherein the group-based communication server is in communication with a group-based communication repository.

4. The apparatus of claim 3 , wherein the memory stores instructions that, when executed by the processor, further configure the apparatus to:

store, in at least one memory, the first group-based communication data superset.

5. The apparatus of claim 3 , wherein the first group-based communication data superset comprises group-based communication data stored in the group-based communication repository associated with the client device.

6. The apparatus of claim 5 ,

wherein the group-based communication data stored in the group-based communication repository associated with the client device comprises:

group-based communication channel data associated with one or more group-based communication channel identifiers associated with the client device;

group-based communication team data associated with one or more group-based communication team identifiers associated with the client device; and

group-based communication channel member data associated with one or more members included in those group-based communication channels identified by the group-based communication channel identifiers associated with the client device.

7. The apparatus of claim 3 , wherein the group-based communication server retrieves the first group-based communication data superset from the group-based communication repository.

8. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor, further configure the apparatus to:

receive, from a group-based communication load-balancer, a client device connection request comprising the client device authorization token.

9. The apparatus of claim 1 , wherein the memory stores instructions that, when executed by the processor, further configure the apparatus to:

receive, from a group-based communication status checker, data representing a plurality of available group-based communication gateway servers;

establish a connection with a group-based communication gateway server of the plurality of available group-based communication gateway servers;

receive, from the group-based communication gateway server, an updated group-based communication data set associated with the client device; and

update, the first group-based communication data superset with the updated group-based communication data set to produce an updated first group-based communication data superset.

10. The apparatus of claim 7 , wherein the memory stores instructions that, when executed by the processor, further configure the apparatus to:

select the group-based communication gateway server from the plurality of available group-based communication gateway servers based upon a group-based communication organization identifier associated with the client device.

11. The apparatus of claim 7 , wherein the connection with the group-based communication gateway server of the plurality of available group-based communication gateway servers comprises a websocket connection.

12. The apparatus of claim 1 , wherein the first group-based communication data subset is transmitted to the client device using one or more of a websocket or HTTP connection.

13. A computer-implemented method, comprising:

transmitting, using a processor and to a group-based communication server, a client device authorization token, the client device authorization token associated with a client device;

receiving, using the processor and from the group-based communication server, a first group-based communication data superset associated with the client device authorization token; and

transmitting, using the processor and to the client device, a first group-based communication data subset extracted based in part on the first group-based communication data superset, the first group-based communication data subset comprising a first group-based communication minimum data set required by the client device to render a group-based communication interface.

14. The computer-implemented method of claim 13 , wherein the group-based communication server verifies the client device authorization token prior to transmitting the first group-based communication data superset.

15. The computer-implemented method of claim 13 , wherein the group-based communication server is in communication with a group-based communication repository.

16. The computer-implemented method of claim 15 , further comprising:

storing, using the processor and in at least one memory, the first group-based communication data superset.

17. The computer-implemented method of claim 16 , wherein the group-based communication server retrieves the first group-based communication data superset from the group-based communication repository.

18. The computer-implemented method of claim 15 , wherein the first group-based communication data superset comprises group-based communication data stored in the group- based communication repository associated with the client device.

19. The computer-implemented method of claim 18 ,

wherein the group-based communication data stored in the group-based communication repository associated with the client device comprises:

group-based communication channel data associated with one or more group-based communication channel identifiers associated with the client device;

group-based communication team data associated with one or more group-based communication team identifiers associated with the client device; and

group-based communication channel member data associated with one or more members included in those group-based communication channels identified by the group-based communication channel identifiers associated with the client device.

20. The computer-implemented method of claim 13 , further comprising:

receiving, using the processor and from a group-based communication load-balancer, a client device connection request comprising the client device authorization token.

21. The computer-implemented method of claim 13 , further comprising:

receiving, using the processor and from a group-based communication status checker, data representing a plurality of available group-based communication gateway servers;

establishing, using the processor, a connection with a group-based communication gateway server of the plurality of available group-based communication gateway servers;

receiving, using the processor and from the group-based communication gateway server, an updated group-based communication data set associated with the client device; and

updating, using the processor, the first group-based communication data superset with the updated group-based communication data set to produce an updated first group-based communication data superset.

22. The computer-implemented method of claim 21 , further comprising:

selecting, using the processor, the group-based communication gateway server from the plurality of available group-based communication gateway servers based upon a group-based communication organization identifier associated with the client device.

23. The computer-implemented method of claim 21 , wherein the connection with the group-based communication gateway server of the plurality of available group-based communication gateway servers comprises a websocket connection.

24. The computer-implemented method of claim 13 , wherein the first group-based communication data subset is transmitted to the client device using one or more of a websocket or HTTP connection.

25. A computer-program product comprising at least one non-transitory computer readable storage medium storing computer code that, when executed by a processor, configures the processor to:

transmit, to a group-based communication server, a client device authorization token, the client device authorization token associated with a client device;

receive, from the group-based communication server, a first group-based communication data superset associated with the client device authorization token; and

transmit, using the processor and to the client device, a first group-based communication data subset extracted based in part on the first group-based communication data superset, the first group-based communication data subset comprising a first group-based communication minimum data set required by the client device to render a group-based communication interface.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2023
From: SLACK TECHNOLOGIES, LLC
To: SALESFORCE, INC.
Reel/Frame 064642/0564 →
MERGER Recorded Jul 29, 2021
From: SLACK TECHNOLOGIES, INC.
To: SLACK TECHNOLOGIES, LLC
Reel/Frame 057475/0404 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2020
From: KATRAK, CYRUS; CHRISTIAN, MARK
To: SLACK TECHNOLOGIES, INC.
Reel/Frame 052176/0047 →