Summary
Working with a solution over multiple servers can easily become a nightmare. A state being kept in memory on one server is not available on the second, leading to weird scenarios as a result. Having a stateless server is vital in those scenarios and also when applying SignalR in a multi server environment. Hubs or persistent connections should not keep the state floating around locally on a server, but it should be architected in a way to accommodate the fact that you're running distributed environment. There is no guarantee as to what server the SignalR is connecting to, and also if the client needs to reconnect, so the scale-out option is absolutely vital to the story. With the different options described in this chapter, you should now be able to scale in an on-premise solution as well as in the cloud. Moving on to the next chapter, we'll see how we can take the same functionality that we've created for the web and make it in a WPF .NET client.