I am looking at designing a game server which uses TCP around the use of Akka for distributing the components across multiple systems.
I plan to use Netty as the TCP frontend in which users connect to and then Akka as the backend communication system to distribute parts.
A TCP frontend can be put online anywhere, it could be the same server or a different server. Once online the Akka system communicates that it is part of the system (somehow). What approach can I take to do this? In my experience in Microservices I would have a discovery service in which the node is aware of to say “Hey! I am available!”. Is a discovery service available with Akka?
The next challenge is, If a user 1 is at Node 1 but a packet needs to route to Node 2 to user 2. What is an efficient way of telling the “PlayerActor” (should be named PlayerManagerActor really) that I need to locate where user 2 is. I thought of maybe using distributed data where each has a copy of where players are stored or I just simple broadcast a message to all the nodes and ones where the user doesn’t exist are ignored.
Hopefully someone can point me in the right direction.