Why architecture matters here
Stream mistakes appear as head-of-line stalls, flow-control deadlocks, or resource exhaustion. Architecture matters because per-stream vs connection flow control decide behavior under load.
The architecture: every piece explained
The top strip is types. Connection shared. Stream IDs partition into client/server bidi/uni. Bidi stream is a full duplex logical channel. Priority hints urgency.
The middle row is controls. Flow control per-stream + connection. STOP_SENDING / RESET cancel. 0-RTT streams for early data. Migration safe — streams survive path change.
The lower rows are practice. H3 mapping one request per stream. Observability per-stream. Ops — LB + resource + retries.
End-to-end flow
End-to-end: client opens a bidi stream for a request. Server responds on same stream. Concurrent second request on another stream — no blocking. One stream cancels via RESET; others continue.