HTTP Connection Lifecycle
- TCP accept, TLS handshake, HTTP decode (Pingora)
request_filter: pipeline runs filters in order; router
sets ctx.cluster, load balancer sets ctx.upstream
request_body_filter: buffer or stream body chunks
through filters (if any filter declares body access)
upstream_peer: converts ctx.upstream to HttpPeer
- Connect to upstream;
fail_to_connect retries
idempotent requests on failure
upstream_request_filter: strips hop-by-hop headers
- Request forwarded, response headers received
response_filter: pipeline runs filters in reverse
response_body_filter: stream response body through
filters (synchronous; Pingora constraint)
logging: re-runs response filters if response
phase was skipped (upstream error, filter rejection)
- Connection returned to pool
TCP Connection Lifecycle
- TCP accept, optional TLS handshake
on_connect : TCP filters run in order
- Bidirectional byte forwarding to upstream
on_disconnect : TCP filters run on close