Subscription fan out

US11159634B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11159634-B1
Application numberUS-201715821676-A
CountryUS
Kind codeB1
Filing dateNov 22, 2017
Priority dateNov 22, 2017
Publication dateOct 26, 2021
Grant dateOct 26, 2021

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

A technology is provided for a fan out for a subscription. A mutation may be received at a data proxy from an application. The mutation may be sent to the data source via a data access resolver associated with the data proxy. Results for the mutation may be received. At least one subscription may be identified which matches combinations of fields in the results for the mutation. A message for the at least one subscription regarding the mutation may be sent to a messaging service to enable the messaging service to publish the message to devices subscribed to at least one topic for the at least one subscription.

First claim

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: receiving a plurality of subscription requests at a data proxy from applications; receiving a mutation at the data proxy from an application executing at a client, wherein the data proxy is hosted in a service provider environment; sending the mutation to a data store via a data access resolver; receiving results for the mutation; identifying a plurality of possible subscriptions based on combinations of fields in the results for the mutation for a fan out operation, wherein a number of the combinations of the fields in the results for the mutation is 2 N , where N is a number of inputs representing the fields in the results, and matching created subscriptions to at least one of the plurality of possible subscriptions wherein the created subscriptions are created by a request being received at the data proxy; and sending messages for the plurality of subscriptions to a messaging service to enable the messaging service to publish the messages to devices subscribed to topics for the plurality of subscriptions. 2. The non-transitory machine readable storage medium of claim 1 , further comprising: sending connection information in response to receiving each of the created subscriptions, wherein the connection information includes a topic identifier, a client identifier for connection to the service provider environment, and a pre-signed URL (Uniform Resource Locator) that is scoped to topics that are subscribed to, wherein only one client can connect using the pre-signed URL. 3. The non-transitory machine readable storage medium of claim 1 , wherein a topic is created using at least one subscription field name and subscription arguments. 4. The non-transitory machine readable storage medium of claim 1 , further comprising: using program code executing on a program code service to identify the plurality of possible subscriptions which match the combinations of the fields in the results for the mutation. 5. A method, under the control of at least one processor, comprising: receiving a mutation from an application; sending the mutation to a data source via a data access resolver; receiving results for the mutation from the data source via the data access resolver; identifying a plurality of possible subscriptions based on combinations of fields in the results for the mutation for a fan out operation, wherein a number of the combinations of the fields in the results for the mutation is 2 N , where N is a number of inputs representing the fields in the results, and matching created subscriptions to at least one of the plurality of possible subscriptions wherein the created subscriptions are created by a request being received at a data proxy associated with the data access resolver; and sending messages regarding the mutation to a messaging service to enable the messaging service to publish the messages to devices subscribed to topics for the created subscriptions. 6. The method of claim 5 , further comprising: receiving a plurality of mutations at the data proxy from a plurality of clients; and triggering a plurality of subscriptions for each of the mutations using the combinations of the fields in the results for the mutations. 7. The method of claim 6 , further comprising: sending connection information in response to receiving each of the plurality of subscriptions, wherein the connection information includes a topic identifier, a client identifier for connection to a service provider environment, and a pre-signed URL (Uniform Resource Locator) that is scoped to topics that are subscribed to, wherein one client can connect using the pre-signed URL. 8. The method of claim 5 , wherein the at least one topic is created using a subscription field name and subscription arguments. 9. The method of claim 5 , wherein the messages are 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: executing a program code function to identify the plurality of possible subscriptions which match the combinations of the fields in the results for the mutation. 11. The method of claim 5 , further comprising receiving a plurality of subscription requests at the data proxy from a plurality of clients. 12. The method of claim 5 , wherein N is limited to a pre-determined number of inputs. 13. The method of claim 5 , wherein messaging for a plurality of subscriptions is scalable using a plurality of subscriptions called in response to the mutation. 14. The method of claim 5 , wherein the mutation is one of a plurality of mutations that were stored in a cache at a client while the client was offline and were received by the data proxy after the client connected to the data proxy. 15. The method of claim 5 , wherein the data source is a data store selected from a group of data stores consisting of: an object data store, a key-value data store, and a search service. 16. The method of claim 5 , wherein the data source is a code function that is a segment of program code executing on a code function service. 17. The method of claim 5 , 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 requested by a client. 18. A system, comprising: a data proxy comprising: at least one processor; and a memory device including instructions to be executed by the at least one processor in order to: receive a mutation at the data proxy from an application executing at a client, wherein the data proxy is associated with a service provider environment; send the mutation to a data store via a data access resolver associated with the data proxy; receive results for the mutation; identify a plurality of subscriptions which match combinations of fields of the results for the mutation, wherein a number of the combinations of the fields in the results for the mutation is 2 N , where N is a number of the fields in the results for the mutation; and send messages for the plurality of subscriptions regarding the mutation to a messaging service to enable the messaging service to publish the messages to devices subscribed to topics for the plurality of subscriptions. 19. The system of claim 18 , the instructions further comprising: receive a plurality of subscription requests at the data proxy from clients. 20. The system of claim 18 , the instructions further comprising: send connection information in response to receiving each of the plurality of subscriptions, wherein the connection information includes a topic identifier, a client identifier for connection to the service provider environment, and a pre-signed URL (Uniform Resource Locator) that is scoped to topics that are subscribed to, wherein only one client can connect using the pre-signed URL.

Assignees

Inventors

Classifications

  • G06F9/547Primary

    Remote procedure calls [RPC]; Web services · CPC title

  • Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54) · CPC title

  • H04L67/55Primary

    Push-based network services · CPC title

  • Client-server · CPC title

  • Message passing systems or structures, e.g. queues · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11159634B1 cover?
A technology is provided for a fan out for a subscription. A mutation may be received at a data proxy from an application. The mutation may be sent to the data source via a data access resolver associated with the data proxy. Results for the mutation may be received. At least one subscription may be identified which matches combinations of fields in the results for the mutation. A message for t…
Who is the assignee on this patent?
Amazon Tech Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/547. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 26 2021 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 4 related publications on this page (citations in our corpus or others sharing the same primary CPC).