|
|
|
|
|
by paulgb
1692 days ago
|
|
> Any external API that could reasonably take a long time to return should have an asynchronous API. I agree, but that doesn’t solve the problem here. The remote API was asynchronous, I was just waiting for it to ack my instruction. Because of issues out of my control (network congestion, maybe?) the time to get a 200 OK from the server shot up. > always provide your own timeouts to what you consider reasonable for connections and responses Agreed here as well, and I was providing my own timeout. The problem is that (cost-wise) it’s fine for 1% of requests to hit a 5-second timeout, but gets expensive when 100% of requests do. And lowering the timeout means that during normal times, requests that have latency in the tail of the distribution but ultimately go through would fail, which is undesirable. |
|