I’m wondering whether there’s an existing framework or technology concept for the following project.
I have a simulation that involves a few hundred thousand Java objects. Each has a unique ID and state, and must be able to send message objects to each other. I’d like to load balance and hot-swap over multiple servers, with a system that automatically optimizes the object distribution across the servers based on their frequency of message passing (objects that talk to each other the most are moved to the same server, groups of talkers are moved to separate servers). Objects must be able to get a periodic timeslice even if nobody is connected, so the simulation is always running.
Basically, just a pile of running Java objects that are dumped onto a dynamic server farm, that automagically optimize their location on the farm and can spawn and communicate with the other objects trivially.
Things like Akka and Killim can handle the communication side of things.
Grouping “mutual talkers”, not so sure–that’s likely an area of ongoing research across actor frameworks and languages. There are lots of papers discussing things like this, and I’m sure implementations are available, but I can’t speak to their robustness (or location, for that matter).