Akka performs asynchronous I / O using Java NIO, so a single thread can handle many concurrent requests. Traditional Java server servers use single-threaded I / O. So, if you need your code to scale up to, say, 10K open connections on a single virtual machine, without the need to generate 10K threads for this, you probably want something asynchronous.
There are Java frameworks like Netty or Atmosphere that also do asynchronous I / O, so you don't need to use Scala if your team is already well versed in Java.
source share