Payload size restiction on EDGE

Not applicable

Are their any restrictions on teh payload size of request payload on APIGEE EDGE ?We have a EMC S3 API in the backend and want to use EDGE to implement security and access to this API.

My concern is

1) Would EDGE support payload size (in order of MBs or GBs) especially during peak traffic ?(Note that the end user will be using the API Proxy exposed on EDGE to upload/download/delete large files from S3) ?

2) If we go for "streaming" would there be any open connection issues to the backend from Edge ?

0 4 2,461
4 REPLIES 4

There are certainly limits - for large payloads you should 'stream'. Also remember you are going to be bound by network bandwidth [typically < 1Gbps]

> If we go for "streaming" would there be any open connection issues to the backend from Edge ?

Sorry I don't understand the question, afaik - there aren't any issues. Have you found any specific issues with the backend?

@Mukundha Madhavan

>>Sorry I don't understand the question, afaik - there aren't any issues. Have you found any specific issues with the backend?

The customer had previously experience lost of "open wait" connection issues in the past .So they are a bit nervous about the re-occurrence of the issue again.Although we have assured them that the performance and connection handling have improved and is better over a period of time.

Not applicable

To prevent memory issues in Edge, message payload size is restricted to the following:

  • 10MB in Edge cloud
  • 3MB in Edge for Private Cloud

Exceeding those sizes results in a protocol.http.TooBigBody error.

Following are the recommended strategies for handling large message sizes in Edge:

  • Stream requests and responses. Note that when you stream, policies no longer have access to the message content. See Streaming requests and responses.
  • In Edge for Private Cloud on-premises deployments, edit the message processor http.propertiesfile to increase the limit in the HTTPResponse.body.buffer.limit parameter. Be sure to test before deploying the change to production.

adas
New Member

If you want to download large files, enable response streaming so that the payload is not buffered which means there won't be any payload size limitations. Like @Varun Singh mentioned earlier, with streaming enabled you cannot enforce policies that interact with the payload like cache, XSLT, XML to JSON etc.

With streaming there would be open connections that serve the request/response while the response is being streamed. So apart from being network bound at some point you would hit the connection limit or socket limit if you have very high concurrency and very large payloads to stream. This would eventually hurt the overall performance of the system as well, depending on how large the responses are and how many concurrent connections you are running.