Timeouts and HTTP Connection Reuse

When building an application which talks to some dependencies over the network it's generally recommended to always specify timeouts 1 . This prevents resources (threads, connections, descriptors) from being occupied for a long time — worst case indefinitely 2 - when a dependency is slow or unavailable, leading to the application becoming unresponsive. Timeouts also allow retrying by contacting a…