This is a generic query on the options available for retry in Edge.
In the eventuality that a particular target is having issues that leads to increase in response latencies and ultimately the rejection of the requests, then it appears that the options are :
1) To figure out the delays and alter the timeout configuration in edge.
2) Use javascript/nodejs to do the retry. Ref. :
http://apigee.com/docs/api-services/cookbook/programming-api-proxies-javascript
Option 1 is sometimes not determinable as the problem happens very sporadically and unpredictably to trace and figure out the delays.
Option 2 is workable, but may be too much work for a sporadic issue. (cost vs value).
The specific questions are :
1) Is there a 3rd option ?
2) What is the general principle around circumventing backend issues in the edge ? What are the costs for doing this ? (Latency for eg.) and when should they be considered if at all ?
Not exactly what you are looking for here, but in the general direction - Apigee also has http://apigee.com/docs/api-services/content/load-balancing-across-backend-servers.
You might not use it to load balance but it can monitor your backend and depending on backend response time you can send the request to a different backend. Look at the sections of TCPMonitor and HTTPMonitor.