I am just thinking of how I should be architecting a server in which it has to serve clients, and also able to receive requests coming from other servers. My network programming experience is limited, so I am having problem picturing this in my mind.
Clients connect to the server, and maintain active TCP connections. In the application code level, this is represented by an object or some handle. Other servers will talk to this server, and each will also have its own active connection objects.
Suppose there is a scenario in which another server sends a command that should be broadcasted to all (or perhaps select) clients. Does this mean that the application code will have to iterate through all the client connections, pick the relevant (or all of them) clients, and broadcast the message?
This also means that the application code can only exist in one beefy box. Clustering them into several boxes with a load balancer does not seem to be a good idea, as the clients connections will be spread out throughout the boxes. Does this sound correct? How do MMO servers handle thousands active connections?