Real-time Transactionally Consistent Change Notifications
US-2017344596-A1 · Nov 30, 2017 · US
US11089133B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-11089133-B1 |
| Application number | US-201715821690-A |
| Country | US |
| Kind code | B1 |
| Filing date | Nov 22, 2017 |
| Priority date | Nov 22, 2017 |
| Publication date | Aug 10, 2021 |
| Grant date | Aug 10, 2021 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A technology is provided for synchronizing data with delayed subscriptions. A request may be received at a data proxy for a data snapshot for an application that has been offline at the client. A subscription may be held for a pre-determined amount of time after the request for the snapshot. The data snapshot may be sent to the client. The data for the subscription may be sent after the pre-determined amount of time.
Opening claim text (preview).
What is claimed is: 1. A non-transitory machine readable storage medium having instructions embodied thereon, the instructions when executed cause a processor to perform processing, comprising: accepting, at a data proxy hosted by a service provider environment, a network connection from a client to enable the client to come online after the client has been offline for a period of time after having been previously connected to the data proxy; receiving, at the data proxy, a request from the client for a data snapshot for an application at the client, wherein the data snapshot includes data generated while the client was offline; holding a subscription for update data for a pre-determined amount of time after the request for the data snapshot, wherein the update data for the subscription is generated during the pre-determined amount of time that occurs after the request for the data snapshot; sending the data snapshot to the client; and sending the update data for the subscription to the client after the pre-determined amount of time. 2. The non-transitory machine readable storage medium of claim 1 , further comprising: tracking a time difference between the network connection and the request for the data snapshot; and basing the pre-determined amount of time on the time difference between the network connection and the request for the data snapshot. 3. The non-transitory machine readable storage medium of claim 1 , further comprising: receiving a mutation at the data proxy from the client, wherein the mutation is one of a plurality of mutations that were optimistically cached and serially ordered at the client while the client was offline. 4. The non-transitory machine readable storage medium of claim 1 , wherein the data for the subscription is sent using at least one of: Message Queue Telemetry Transport (MQTT) protocol, WebSocket protocol, or long polling. 5. A method, comprising: receiving a request for a data snapshot for an application that has come online after the application has been offline for a period of time; holding a subscription for update data for a pre-determined amount of time after the request for the data snapshot, wherein the update data is generated during the pre-determined amount of time that occurs after the request for the data snapshot; sending the data snapshot to a client; and sending the update data for the subscription to the client via a messaging service after the pre-determined amount of time. 6. The method of claim 5 , wherein the data snapshot includes data generated while the client was offline, and the update data for the subscription is generated after a network connection has been made. 7. The method of claim 5 , wherein the pre-determined amount of time is at least 10 seconds. 8. The method of claim 5 , further comprising: tracking a time difference between a network connection being completed and the request for the data snapshot; and basing the pre-determined amount of time on the time difference between the network connection being completed and the request for the data snapshot. 9. The method of claim 5 , wherein the update data for the subscription is sent using at least one of: Message Queue Telemetry Transport (MQTT) protocol, WebSocket protocol, or long polling. 10. The method of claim 5 , further comprising: receiving a mutation at a data proxy from the client; and applying the mutation to a data source via a data access resolver. 11. The method of claim 10 , wherein the mutation is one of a plurality of mutations that were stored in a cache at the client in a queue while the client was offline and were sent to the data proxy to be applied serially after a network connection is made. 12. The method of claim 10 , wherein the data proxy includes more than one version of a data schema and the mutation is handled by the data proxy using a version of the data schema employed by the client. 13. The method of claim 10 , further comprising: receiving a conflict notification at the data proxy from the data access resolver for a conflict associated with the mutation at the data source; and resolving the conflict at the data proxy using a pre-defined function defined in the data proxy. 14. The method of claim 10 , wherein the data source is a data store, and the data store comprises one of: an object data store, a key-value data store, a relational database, or a search service. 15. The method of claim 10 , wherein the data source is a code function that is a segment of program code executing on a code function service. 16. The method of claim 5 , wherein a messaging service is used to deliver messages to the client and the messaging service is based on a publish-subscribe model, wherein messages are sent to topics subscribed to by the client. 17. A system, comprising: a data proxy; at least one processor; and a memory device including instructions to be executed by the at least one processor in order to: accept, at a data proxy, a network connection from a client to enable the client to come online after the client has been offline for a period of time; receive, at the data proxy, a request for a data snapshot for an application that has been offline; hold a subscription for update data for a pre-determined amount of time after the request for the data snapshot, wherein the update data is generated during the pre-determined amount of time that occurs after the request for the data snapshot; send the data snapshot to the client; send the update data for the subscription after the pre-determined amount of time; and receive a mutation from a queue for the client, wherein the mutation was generated at the client while the client was offline. 18. The system of claim 17 , the memory device including further instructions to be executed by the at least one processor in order to: track a time difference between the network connection and the request for the data snapshot; and base the pre-determined amount of time on the time difference between the network connection and the request for the data snapshot. 19. The system of claim 17 , wherein the mutation is one of a plurality of mutations that were optimistically cached and serially ordered at the client while the client was offline. 20. The system of claim 17 , the memory device including further instructions to be executed by the at least one processor in order to: apply a plurality of mutations from the client in a serial order that was generated at the client.
Establishing a time schedule for servicing the requests · CPC title
Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes · CPC title
Brokering proxy services · CPC title
Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable · CPC title
Protocols · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.