936 B
936 B
| id | date | status | supersedes | superseded-by | affected-paths | affected-components | ||
|---|---|---|---|---|---|---|---|---|
| 0004 | 2026-03-12 | Accepted |
|
|
0004 — Cap outbound HTTP timeouts at five seconds
Context
A single hung receiver held a delivery open for two minutes with the stdlib default timeouts, blocking everything queued behind it.
Decision
HttpClient sets open_timeout and read_timeout to five seconds. A receiver that cannot accept a small JSON POST within five seconds is treated as failed and handled by the retry policy.
Consequences
A hung receiver costs at most ten seconds per attempt. Genuinely slow-but-healthy receivers will see more retries; none have surfaced in practice.
Alternatives rejected
Per-endpoint configurable timeouts rejected: no current need, and it invites unbounded values creeping back in. Thirty-second timeouts rejected: still long enough to stall the queue noticeably.