IP Library Granted Patent US 11,876,713
Granted Patent B1
US 11,876,713 · App. 18/183,020 · Granted Jan 16, 2024

Client side backoff filter for rate limiting

Inventors: Nandan B N (Shivamogga, IN); A. Sushanth Kamath (Bangalore, IN); Dhivya Arumugam (Karnataka, IN); Venkata Krishna Murthy Vadrevu (Bangalore, IN); Rajendra Jayendra Gosavi (Navi Mumbai, IN); Anil Kumar Attuluri (San Diego, CA); Sagar Shukla (Bagalore, IN); Jason Michael Webb (Valley Center, CA); Akash Jain (Bangalore, IN)
Assignee: Intuit Inc.
H04L47/115H04L67/56
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 11,876,713
App. No.
18/183,020
Granted
Jan 16, 2024
Kind
B1
Abstract

A method including receiving, from a server, a backoff data packet including first information and second information. The first information includes a backoff command to cease transmitting at least some requests to a service executing on the server, and The second information includes metadata. The method also includes adding the backoff data packet to cached data stored in a cache. The method also includes receiving, from a client, a request data packet including a request for the service. The method also includes comparing request information, associated with the request data packet, to the cached data, including at least comparing the request information to the metadata. The method also includes blocking, responsive to a match between the request information and the cached data, the request data packet from being transmitted to the service.

Claims (89)

1. A method comprising:

receiving, from a server, a backoff data packet comprising first information and second information,

wherein the first information comprises a backoff command to cease transmitting at least some requests to a service executing on the server, and

wherein the second information comprises metadata;

adding the backoff data packet to cached data stored in a cache;

receiving, from a client, a request data packet comprising a request for the service;

comparing request information, associated with the request data packet, to the cached data, including at least comparing the request information to the metadata;

blocking, responsive to a match between the request information and the cached data, the request data packet from being transmitted to the service.

2. The method of claim 1 , wherein receiving the backoff data packet, adding, receiving the request data packet, comparing, and blocking are performed by a proxy service disposed in a communication path between the client and the server.

3. The method of claim 2 , wherein:

the proxy service comprises a client sidecar and a service sidecar,

the client sidecar is a client-side application disposed in the communication path between the client and the service sidecar,

the service sidecar is a server-side application disposed in the communication path between the service and the client sidecar, and

receiving the backoff data packet, adding, receiving the request data packet, comparing, and blocking are performed by the client sidecar.

4. The method of claim 3 , further comprising:

receiving, prior to receiving the backoff data packet, the backoff command at the service sidecar from the service;

generating, prior to receiving the backoff data packet, the backoff data packet at the service sidecar; and

transmitting the backoff data packet from the service sidecar to the client sidecar.

5. The method of claim 4 , wherein generating the backoff data packet further comprises:

generating, by the service sidecar, the metadata; and

adding, by the service sidecar, the backoff command and the metadata to the backoff data packet.

6. The method of claim 1 , further comprising:

transmitting an error code to the client.

7. The method of claim 6 , wherein the error code indicates to the client that the service received too many requests.

8. The method of claim 1 , further comprising:

transmitting a proxy backoff command to the client to cease transmitting additional request data packets.

9. The method of claim 1 , wherein:

the metadata comprises a backoff time header of the backoff data packet, and

the backoff time header indicates a time period during which further request data packets will be blocked.

10. The method of claim 1 , wherein:

the metadata comprises an authority header of the backoff data packet, and

the authority header indicates an identity of the service.

11. The method of claim 1 , wherein:

the metadata further comprises an identity of a rule or a path,

the rule indicates only a subset of additional request data packets to be blocked, and

the path indicates a communication path from which the additional request data packets are to be blocked.

12. The method of claim 1 , wherein the metadata specifies a quota of additional request data packets that will be accepted within a specified time period.

13. A method comprising:

receiving, from a server, a backoff data packet comprising first information and second information,

wherein the first information comprises a backoff command to cease transmitting at least some requests to a service executing on the server, and

wherein the second information comprises metadata;

adding the backoff data packet to cached data stored in a cache;

receiving, from a client, a request data packet comprising a request for the service;

comparing request information, associated with the request data packet, to the cached data, including at least comparing the request information to the metadata; and

permitting, responsive to the request information failing to match the cached data, the request data packet to be transmitted to the service.

14. The method of claim 13 , wherein:

receiving the backoff data packet, adding, receiving the request data packet, comparing, and blocking are performed by a proxy service disposed in a communication path between the client and the server,

the proxy service comprises a client sidecar and a service sidecar,

the client sidecar is a client-side application disposed in the communication path between the client and the service sidecar,

the service sidecar is a server-side application disposed in the communication path between the service and the client sidecar, and

receiving the backoff data packet, adding, receiving the request data packet, comparing, and blocking are performed by the client sidecar.

15. The method of claim 14 , further comprising:

receiving, prior to receiving the backoff data packet, the backoff command at the service sidecar from the service;

generating, prior to receiving the backoff data packet, the backoff data packet at the service sidecar; and

transmitting the backoff data packet from the service sidecar to the client sidecar.

16. The method of claim 15 , wherein generating the backoff data packet further comprises:

generating, by the service sidecar, the metadata; and

adding, by the service sidecar, the backoff command and the metadata to the backoff data packet.

17. A system comprising:

a processor;

a data repository in communication with the processor, the data repository storing:

a backoff data packet comprising first information and second information,

wherein the first information comprises a backoff command to cease transmitting at least some requests to a service executing on a server, and

wherein the second information comprises metadata,

cached data,

a request data packet comprising a request by a client for the service,

request information associated with the request data packet,

a match between the request information and the cached data;

a cache in communication with the processor, wherein the cache stores the cached data; and

a proxy service in communication with the processor, wherein the proxy service is programmed, when executed by the processor to:

receive the backoff data packet,

add the backoff data packet to the cached data,

receive the request data packet,

compare the request information to the cached data, including at least comparing the request information to the metadata, and

block, responsive to the match, the request data packet from being transmitted to the service.

18. The system of claim 17 , further comprising:

a client in communication with the processor, wherein the client is programmed to generate the request data packet; and

a client sidecar in communication with the client, wherein:

the client sidecar is part of the proxy service,

the client sidecar is a client-side application disposed in a communication path between the client and the server, and

the client sidecar is programmed, when executed by the processor, to receive the backoff data packet, add the backoff data packet, receive the request data packet, compare the request information to the cached data, and block the request data packet.

19. The system of claim 18 , further comprising:

a server in communication with the processor, wherein the server is programmed to generate a backoff command;

a service executable on the server; and

a service sidecar in communication with the server, wherein

the service sidecar is part of the proxy service,

the service sidecar is a server-side application disposed in the communication path between the service and the client sidecar,

the service sidecar is programmed, when executed by the processor, to generate the backoff data packet and to include the backoff command and the metadata in the backoff data packet.

20. The system of claim 18 , wherein the client sidecar is further programmed to transmit an error code to the client, responsive to blocking the request data packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2023
From: B N, NANDAN; KAMATH, A. SUSHANTH; ARUMUGAM, DHIVYA; VADREVU, VENKATA KRISHNA MURTHY; GOSAVI, RAJENDRA JAYENDRA; ATTULURI, ANIL KUMAR; SHUKLA, SAGAR; WEBB, JASON MICHAEL; JAIN, AKASH
To: INTUIT INC.
Reel/Frame 065785/0033 →