Intelligent connection management and push- based updates for a cloud-based platform
Techniques for managing the distribution of platform content updates to client devices includes a system that receives a connection request from a client device to access one or more resources of a software platform via a client application. The system establishes, in response to the request, a bidirectional network connection with the client device and retrieves one or more initial data streams from application programming interfaces (APIs) of the platform. The system transmits, over the bidirectional network connection, the data streams for presentation on a user interface of the client application. The system retrieves subsequent data streams corresponding to the initial data streams based on prior user interactions with the initial data streams.
1 . A system comprising:
one or more processors; and
a memory storing a plurality of instructions, which, when executed on the one or more processors, cause the system to:
receive a first connection request from a client device to access one or more resources of a software platform via a client application executing on the client device;
establish, in response to the first connection request, a bidirectional network connection with the client device;
retrieve one or more initial data streams from a plurality of application programming interfaces (APIs) of the software platform;
transmit, to the client device over the bidirectional network connection, the initial one or more data streams for presentation on a user interface of the client application;
receive, from the client device over the bidirectional network connection, one or more indications of user interactions with the at least one of the initial one or more data streams, the user interactions comprising page access events, selections of data objects, and durations of display of user interface components;
for each indication of user interactions:
identify a data object displayed to the client device, and
map the indication to the identified data object;
determine, based on the one or more indications, a subset of the one or more of the initial data streams for continued transmission of real-time content updates to the client device, wherein determining the subset comprises filtering out backend updates unrelated to the mapped data objects;
receive a second connection request from the client device to access the one or more resources of the software platform via the client application;
establish, in response to the second connection request, a second network connection with the client device;
retrieve the subset of the one or more of the initial data streams from the plurality of APIs; and
transmit, over the second network connection, the retrieved subset for presentation on the user interface.
2 . The system of claim 1 , wherein the bidirectional network connection is a WebSocket connection.
3 . The system of claim 2 , wherein the second network connection is a Server Sent Event (SSE) connection.
4 . The system of claim 1 , wherein the plurality of instructions further cause the system to cache the indications of user interactions of the at least one of the initial one or more data streams.
5 . The system of claim 3 , wherein to determine the subset of the one or more of the initial data streams is based on the cached indications.
6 . The system of claim 5 , wherein the subset is based on a frequency of user interactions with the at least one of the initial one or more data streams.
7 . The system of claim 5 , wherein the plurality of instructions further cause the system to filter the at least one of the initial one or more data streams based on the cached indications.
8 . A method comprising:
receiving a first connection request from a client device to access one or more resources of a software platform via a client application executing on the client device;
establishing, in response to the first connection request, a bidirectional network connection with the client device;
retrieving one or more initial data streams from a plurality of application programming interfaces (APIs) of the software platform;
transmitting, to the client device over the bidirectional network connection, the initial one or more data streams for presentation on a user interface of the client application;
receiving, from the client device over the bidirectional network connection, one or more indications of user interactions with the at least one of the initial one or more data streams, the user interactions comprising page access events, selections of data objects, and durations of display of user interface components;
for each indication of user interactions:
identifying a data object displayed to the client device, and
mapping the indication of the identified data object;
determining, based on the one or more indications, a subset of the one or more of the initial data streams for continued transmission of real-time content updates to the client device, wherein determining the subset comprises filtering out backend updates unrelated to the mapped data objects;
receiving a second connection request from the client device to access the one or more resources of the software platform via the client application;
establishing, in response to the second connection request, a second network connection with the client device;
retrieving the subset of the one or more of the initial data streams from the plurality of APIs; and
transmitting, over the second network connection, the retrieved subset for presentation on the user interface.
9 . The method of claim 8 , wherein the bidirectional network connection is a WebSocket connection.
10 . The method of claim 9 , wherein the second network connection is a Server Sent Event (SSE) connection.
11 . The method of claim 8 , further comprising caching the indications of user interactions of the at least one of the initial one or more data streams.
12 . The method of claim 11 , wherein determining the subset is based on the cached indications.
13 . The method of claim 12 , wherein the subset is based on a frequency of user interactions with the at least one of the initial one or more data streams.
14 . The method of claim 13 , further comprising filtering the at least one of the initial one or more data streams based on the cached indications.
15 . One or more non-transitory machine-readable storage media comprising a plurality of instructions, which, when executed on one or more processors, causes a system to:
receive a first connection request from a client device to access one or more resources of a software platform via a client application executing on the client device;
establish, in response to the first connection request, a bidirectional network connection with the client device;
retrieve one or more initial data streams from a plurality of application programming interfaces (APIs) of the software platform;
transmit, to the client device over the bidirectional network connection, the initial one or more data streams for presentation on a user interface of the client application;
receive, from the client device over the bidirectional network connection, one or more indications of user interactions with the at least one of the initial one or more data streams, the user interactions comprising page access events, selections of data objects, and durations of display of user interface components;
for each indication of user interactions:
identify a data object displayed to the client device, and
map the indication to the identified data object;
determine, based on the one or more indications, a subset of the one or more of the initial data streams for continued transmission of real-time content updates to the client device, wherein determining the subset comprises filtering out backend updates unrelated to the mapped data objects;
receive a second connection request from the client device to access the one or more resources of the software platform via the client application;
establish, in response to the second connection request, a second network connection with the client device;
retrieve the subset of the one or more of the initial data streams from the plurality of APIs; and
transmit, over the second network connection, the retrieved subset for presentation on the user interface.
16 . The one or more non-transitory machine-readable storage media of claim 15 , wherein the bidirectional network connection is a WebSocket connection, and wherein the second network connection is a Server Sent Event (SSE) connection.
17 . The one or more non-transitory machine-readable storage media of claim 15 , wherein the plurality of instructions further cause the system to cache the indications of user interactions of the at least one of the initial one or more data streams.
18 . The one or more non-transitory machine-readable storage media of claim 17 , wherein to determine the subset of the one or more of the initial data streams is based on the cached indications.
19 . The one or more non-transitory machine-readable storage media of claim 18 , wherein the subset is based on a frequency of user interactions with the at least one of the initial one or more data streams.
20 . The one or more non-transitory machine-readable storage media of claim 18 , wherein the plurality of instructions further cause the system to filter the at least one of the initial one or more data streams based on the filtered cached indications.