Is it possible to hold the request for some time before hitting prox url.

Could you please suggest an idea to hold the request of consumer for some time.

Scenario:To Avoid the quota violation.

Brief information: If I given 5 requests for 1 minute .If the requests were exceeded in the stipulated time

obliviously it throws quota violation.So, that I am trying to hold the 6th request between the time limit in

some place and will push that 6th request as the first request of the next time peroid.

Solved Solved
0 1 722
1 ACCEPTED SOLUTION

No. There is no queue in Apigee Edge. It's an HTTP Proxy. The requests are presumed to be synchronous.

If there really is a quota, then the correct behavior is for the client to backoff and wait, and then retry the request after a given interval. The client can be intelligent about the wait, if you send back the quota reset time, as described in this answer. But the point is, the burden is on the client to back off, and retry. The server (from the perspective of Apigee Edge, this is the "backend"), and the proxy between the client and server (Apigee Edge itself) do not participate in that retry. For the server and for the proxy (Apigee), a retried request is treated the same as any other request.

If you would like a queued model, then you should probably build that into your backend in some way. There are cloud-storage systems in Google Cloud that could assist with the persistence of those requests. You could also use Firebase, Apigee Edge BaaS, etc.

View solution in original post

1 REPLY 1

No. There is no queue in Apigee Edge. It's an HTTP Proxy. The requests are presumed to be synchronous.

If there really is a quota, then the correct behavior is for the client to backoff and wait, and then retry the request after a given interval. The client can be intelligent about the wait, if you send back the quota reset time, as described in this answer. But the point is, the burden is on the client to back off, and retry. The server (from the perspective of Apigee Edge, this is the "backend"), and the proxy between the client and server (Apigee Edge itself) do not participate in that retry. For the server and for the proxy (Apigee), a retried request is treated the same as any other request.

If you would like a queued model, then you should probably build that into your backend in some way. There are cloud-storage systems in Google Cloud that could assist with the persistence of those requests. You could also use Firebase, Apigee Edge BaaS, etc.