Description
It looks like HTTP1.1 connections only allow 2-6 connections per host. If the server/reverse proxy is upgraded to HTTP/2, this is fixed.
For users, this leads to a very confusing experience. Coder seems, slow, sluggish, and unresponsive. See Slack and search for issues
For admins, we surface an error, but hidden in the workspace proxies page. I don't think we also explain the reason why we recommend moving off HTTP1. See #15917
Let's give users and admins a better experience. These suggestions are designed not to be prescriptive, as I don't understand the cost/complexity but are in prioritized from best, to worst, admin/user experience. All are a substantial improvement to the status quo.
- Do not keep a constant
websocketSSE connection open per tab. Find a way to support unlimited tabs on HTTP1.1: We should look at how other dynamic web apps support having 6 tabs open on HTTP1. I'm sure there are open source examples that still allow page updates in realtime, without maintaining a websocket per tab - Partial support in the tab
6+n
: Tab 7 should not have a blocking/unclear behavior but perhaps not have the same level of updates. The user should be aware of the degraded behavior via a banner. - Fully deprecate support for HTTP1.1. Show a giant banner for admins and users: Because this makes the experience borderline unusable and we do not surface why there is an error for users/admins except in one page, we should make it explicit that Coder server only supports HTTP2. If we do this, we should confirm other products do this and are still successfully deployed in global enterprises.
3 major customers have reported this, and it is causing a lot of user and admin confusion. I am open to other ideas on how we solve it, but the status quo needs improvement