Our application also uses Akka. In order to scale Akka, we will need to use an Akka cluster. The Akka cluster allows us to clusterize several Actor systems in several machines. It has special Actor routers that are cluster aware, and we can use these Actors to route requests to the whole cluster; more details can be found at http://doc.akka.io/docs/akka/2.4.9/java/cluster-usage.html#Cluster_Aware_Routers.
The Akka cluster provides membership protocol and life cycle. Basically, we can be notified by the cluster when a new member joins or when a member leaves the cluster. Given this capability, it is possible for us to code a scalable solution around these semantics. As we know when a member joins, we can deploy more nodes, and we can also drop nodes on demand.
A simple sample would be to create an Actor called frontend, and when we see this Actor, we could deploy three backend Actors across the cluster. If the frontend Actor leaves, we could undeploy...