A method of migrating clients from a first server to a second server, the method comprising: sending a message from the first server to the second server identifying a set of clients to be migrated; serializing, at the first server, state of one or more objects associated with the set of clients; transmitting the serialized state from the first server to the second server; instructing, by the first server, each client in the set of clients to establish a connection to the second server such that each client is connected in parallel to both the first and second servers with the connection to the first server as a primary connection and the connection to the second server as a secondary connection; and in response to receiving a message at the first server indicating that all the clients in the set of clients are connected to the second server, instructing the clients to disconnect from the first server and switch the primary connection to be the connection with the second server, characterized in that the method further comprises: transmitting, from the first server to a migration service, periodic messages identifying any clients currently connected to the first server; receiving, at the migration service, the periodic messages sent by the first server and periodic messages sent by other servers in a system; determining, at the migration service, the set of clients to be migrated and an identity of the second server using the periodic messages; and sending a migration trigger message to the first server. sending a message from the first server to the second server identifying a set of clients to be migrated; serializing, at the first server, state of one or more objects associated with the set of clients; transmitting the serialized state from the first server to the second server; instructing, by the first server, each client in the set of clients to establish a connection to the second server such that each client is connected in parallel to both the first and second servers with the connection to the first server as a primary connection and the connection to the second server as a secondary connection; and in response to receiving a message at the first server indicating that all the clients in the set of clients are connected to the second server, instructing the clients to disconnect from the first server and switch the primary connection to be the connection with the second server, characterized in that the method further comprises: transmitting, from the first server to a migration service, periodic messages identifying any clients currently connected to the first server; receiving, at the migration service, the periodic messages sent by the first server and periodic messages sent by other servers in a system; determining, at the migration service, the set of clients to be migrated and an identity of the second server using the periodic messages; and sending a migration trigger message to the first server. transmitting, from the first server to a migration service, periodic messages identifying any clients currently connected to the first server; receiving, at the migration service, the periodic messages sent by the first server and periodic messages sent by other servers in a system; determining, at the migration service, the set of clients to be migrated and an identity of the second server using the periodic messages; and sending a migration trigger message to the first server.