We are pleased to announce the availability of Akka 2.1.0 ‘Mingus.’ This is the next step of Akka’s evolution, following the major transformation that was 2.0—you are invited to look back at the announcement from March 6, 2012. The 2.0 release laid the groundwork, with a completely message-based internal structure that enables your actor-based services to interact regardless of where they are hosted. As a result, you can scale up and out by configuration at deployment time. Today’s release adds cluster support, forming a powerful substrate on which elastic cloud-based applications are built.
We adapted the Riak and DynamoDB designs to enable Akka nodes to act in concert, but instead of hosting passive units of data, they now support millions of active units of computation—actors. Of course, we hardened and polished the features that made 2.0 such a great release: supervision hierarchies, death watch and distribution by configuration. On top, we added cluster-aware message routers that will automatically add or remove routing targets when you scale your application to match varying performance needs; this is done by adding or removing cluster nodes. It should be noted that these elastic routers are mere users of the new cluster APIs, which means that you can also develop tailored cluster-aware features for your applications if needed..
This brings me to an important point: we marked the cluster support “experimental” because these new APIs have not yet had enough exposure to the great variety of distributed computing problems tackled world-wide. Therefore, we deemed it unwise to freeze our design at this point, and instead will allow it to be refined during the next development cycle based on our users’ feedback. We will keep those changes to a minimum.
Additional key features of Aka 2.1.0 include:
- Integration with the Scala Standard Library: futures have been unified with SIP-14 and akka-actor.jars will be part of the Scala distribution from 2.10 onward
- Akka Camel support
- Encrypted Akka remoting using SSL/TLS
- OSGi support
- A module for multi-node testing to support you in developing clustered applications—experimental in the same sense as cluster support
- A Java API for the TestKit
A series of blog posts highlighting the new features has been published over the past weeks on our team blog, see the “spotlight21” tag. The more technically inclined may also want to peruse the release announcement on letitcrash.com.
We are proud to say that this release contains contributions from many members of our very active community. A special thanks goes to Raymond Roestenburg, Oliver Schulz, Gert Vanthienen, Peter Badenhorst, Piotr Gabryanczyk, Gerolf Seitz, Rick Latrine, Michael Pilquist, Brian Scully, Helena Edelson, Mathias Doenitz, Amir Moulavi and Joshua Gao.