When scaling a SignalR application to multiple instances behind a load balancer, notifications can silently drop because each server only knows about its own connections. The fix is a Redis backplane — a shared pub/sub layer that lets all server instances route messages to any connected client. Setup requires just one method call: chaining `.AddStackExchangeRedis()` onto `AddSignalR()`. Two important caveats: sticky sessions are still required for the WebSocket negotiation handshake, and messages are not buffered if Redis goes down temporarily. The post also compares the Redis backplane to Azure SignalR Service, recommending the former for self-hosted or latency-sensitive setups.
Table of contents
Why SignalR Breaks When You Scale OutThe Backplane PatternSetting It UpThe Sticky Sessions RequirementWhat Happens When Redis Goes Down?Redis Backplane vs. Azure SignalR ServiceSummarySort: