Too Long; Didn't Read
SignalR is stateful, so when a client sends a request to a server, subsequent requests must go to the same server. Scaling SignalR-based apps horizontally is tricky compared to REST APIs. Microsoft started to offer its cloud solution in place of Redis — the Azure SignalR Service. The SignalR service is not open source, so I could only guess how the proxying is actually done, but it can be surised using the dotNetify middleware. The idea of using SignalR middleware is the key piece of the puzzle.