The Http::Dispatcher has grown quite a bit since its inception. It currently handles
- upstream HTTP bridging
- downstream HTTP bridging
- cross-thread dispatch to Envoy across engine lifecycle
At minimum it would be good to split 3) into a generic dispatch mechanism, but likely 1) and 2) can be split out as well. This would help separate concerns and make dispatch generally available to non-HTTP calls.