We—the Akka committers—are pleased to be able to announce the availability of Akka 2.2-M1 (PRE-RELEASE MILESTONE ONE).
It is a preview on what is going to become Akka 2.2, so please give us feedback!
The most notable features in this release are:
Cluster support improvements
- Metrics-based adaptive cluster-aware routers
- DeathWatch fires upon node DOWN (previously on UNREACHABLE)
- Configurable minimum number of nodes before cluster starts
- ClusterSingleton actor pattern
- Hardening of the code by adding stress tests
- various fixes, optimizations
- Smaller SPI for implementing other transport drivers
- Support for multiple transports within one ActorSystem
- No more blocking message sends due to broken connections or during connection establishment
- Currently still using Netty, but will switch to Akka IO soon
- Completely new IO layer written in collaboration with the spray.io team
- Actors all the way down—until you hit NIO
- No external dependencies
- Extreme scalability
- No compromises on the API (i.e. fully exposing the different capabilities of e.g. TCP and UDP)
- Type-safety for message sends which is on par with type checking of method invocations
- Based on Scala 2.10 macros; unfortunately not possible to do in Java
- Very early preview, expect API changes within the next weeks
The akka.actor.IO support has been deprecated and is being replaced with the new IO layer in package akka.io. The question of why this has been done as opposed to just wrapping Netty behind actors has been answered recently on the spray mailing list (https://groups.google.com/d/topic/spray-user/7l1RbqxRuic/discussion), in a nutshell the reason for joining forces with the spray.io team was that Netty—while being a great network framework—replicates a lot of what Akka actors solve (thread management, the pipeline stages as light-weight special actors) which makes it cumbersome to keep resource usage of an Akka application as low as it could be. Another aspect is that Netty as a Java library heavily uses mutability, comes with its own Futures, etc. So the decision was made to create a very lean, specialized actor-based layer on top of NIO which from now on will form the foundation on which Akka and Spray base their network support.
When migrating an existing project from Akka 2.1.0 please have a look at our migration guide.
Take it for a spin!
Akka is released under the Apache V2 license.
2.2-M1 compared to Akka 2.1.0:
744 files changed, 41156 insertions(+), 16523 deletions(-)
commits added removed 62 6476 3442 Roland 58 8925 4476 Patrik Nordwall 57 10824 6041 Endre Sándor Varga 43 3040 4311 Viktor Klang 17 819 440 Björn Antonsson 11 1324 322 Johannes Rudolph 10 1109 527 Mathias 6 1108 289 Rich Dougherty 5 311 139 RickLatrine 2 83 20 Kaspar Fischer (hbf) 2 127 66 Christophe Pache 2 163 66 Raymond Roestenburg 1 10 3 Michael Pilquist 1 127 127 drewhk 1 548 77 Helena Edelson 1 38 24 Matthew Neeley 1 8 10 Peter Vlugter 1 3 3 Thomas Lockney 1 36 35 Derek Mahar