Scaling up
This chapter is dedicated to more advanced scenarios, and strategies to guarantee high performance to our applications are a very good fit for this section of the book. We already talked about how optimized the overall design of SignalR is, and how well performing its runtime behavior is, but this does not mean that we will never face scalability issues. There are ways to scale the performance of SignalR vertically on a single box—for example, adding more memory (scaling up)—and it's also possible to scale SignalR horizontally by adding more servers (scaling out) and making them exchange messages so that broadcasting is correctly replicated. Clients must be able to keep on working as usual, regardless of the actual physical endpoint they connect to and unaware of the changes in the infrastructure.
In this first recipe dedicated to scaling strategies, we'll discuss the first kind of optimization: scaling up. The format will slightly deviate from the usual one because there is no...