software

We replaced a 40 MB HTTP client with 600 lines

The hard part was not the requests. It was the error handling everyone had forgotten about.

The old client pulled in a tree of packages for retries, proxies and telemetry. Most of that tree was disabled in production.

The replacement handles timeouts, redirects and a small retry policy. It deliberately does not stream multipart uploads, which is the one feature we kept the old tool for.

The win is not size. It is that a new engineer can read the whole thing in an afternoon.

#deployment#open source#testing