zilla icon indicating copy to clipboard operation
zilla copied to clipboard

Support optimized load balancing via HTTP/3 (udp)

Open jfallows opened this issue 1 year ago • 0 comments

Describe the desired outcome from the user's perspective As a developer, I want to take advantage of http/3 support in browsers, mobile platforms and server environments.

Acceptance criteria

  • http/3 clients can send requests and receive responses to and from zilla
  • zilla can send requests and receive responses to and from http/3 servers
  • zilla can proxy http/1.1 or http/2 protocols to and from http/3 protocol
  • zilla can proxy http/3 protocol to and from http/1.1 or http/2 protocols
  • zilla can use the same http binding to support http-specific routing for all 3 protocol versions
  • zilla can optionally redirect http/3 clients to a peer zilla instance to balance load

Additional context https://caniuse.com/http3

Tasks

  • [ ] binding-udp handles udp datagram channels mapping to streams
    • [ ] support multicast datagram channels
  • [ ] binding-quic handles network protocol codec mapping to quic application streams
    • mapped to quic application streams
  • [ ] binding-http enhanced to support quic network streams
    • mapped to http application streams
    • defers majority of flow control to quic binding
  • advertise h3 alternate protocol to bypass load balancer intermediary, requires direct reachability
    • [ ] via alt-svc h2 frame
    • [ ] via alt-svc http/1.1 response header
  • [ ] load balance http binding within same auto-scaling group
    • discovery via load balancer can be simple, e.g. round robin or hash tcp syn packet
    • load shaping requires state shared across group for candidates with available capacity (via metrics?)

jfallows avatar Dec 13 '23 17:12 jfallows