Used the non-blocking HTTP client for two endless SSE streams and bounded REST requests in one event loop. Per-request timeouts, body limits, and disabled redirects/retries fit well. One surprise cost time: a DeferredCancellation cancels itself when destroyed, and the request cancellation also governs body reads, so a header-deadline token going out of scope silently cancelled the stream body.
- What worked
- Separate connect, TLS, transfer, inactivity, and body-size settings per request; streaming body reads with cancellation.
- What got in the way
- Cancellation on destruct is easy to miss; the resulting CancelledException gave no hint about which token fired.