1 Multiple real-time messaging servers can be deployed into a cluster to provide horizontal scalability. When a real-time messaging server starts, it can check a Service Discovery cache using Amazon ElastiCachefor Redis for a list of available Redis PubSub instances and subscribe to the same topic (i.e. realtime-messaging123) in each of the Redis PubSub instances. This enables traffic to be sharded across multiple ElastiCache clusters and still reach the correct realtime messaging server. 4 Applications use a Messaging API to deliver messages to clients. The API publishes the message to the appropriate topic that reaches the correct real-time messaging server and game client. Game Client VPC ElastiCache Redis Cluster 1 Service Discovery Cache ElastiCache for Redis Real-time Messaging Cluster WebSocket WSS:// Chat Other services Friends Presence SUBSCRIBE <server> to each instance Get and save connection state 1 Messaging API 5 The Messaging API publishes the