The release of 2.3.0 version of Akka toolkit was recently announced. Akka is a very useful toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM. It is distributed and provides high-level abstractions like Actors, Futures and STM.
Its new release comes eight months after the 2.2.0 release and brings along new features. One of the most important ones is that now Actor and FSM support Java 8 lamda expressions (still in experimental mode). The syntax used is very close to Scala’s pattern matching.
Other important features are :
- Cluster nodes can now come back after being in an unreachable state. So cluster becomes more resilient transient network failures.
- Stateful actors can be distributed to the cluster when not fitting in one machine, without knowing their actual location, which may change over time. This feature is the sharding of actors.
- The experimental label is removed from Akka IO package, but with the Pipeline infrastructure is discontinued.
- The OSGi support has been reworked to make akka-actor an OSGi bundle.
The most exciting new feature is Akka Persistence. In Akka Persistence the actors persist their internal state, so when restarted after a crash or after migration they can recover it. The actors actually persist their changes to a journal, so stateful actors can be recovered by replaying stored changes, rebuilding the actors’ internal state. Akka Persistence provides point-to-point communication channels with at-least-once message delivery semantics.
There have been changes to the documentations so as to get started with the new release of the framework.Related Whitepaper:
Get ready to program in a whole new way!
Functional Programming in Java will help you quickly get on top of the new, essential Java 8 language features and the functional style that will change and improve your code. This short, targeted book will help you make the paradigm shift from the old imperative way to a less error-prone, more elegant, and concise coding style that’s also a breeze to parallelize. You’ll explore the syntax and semantics of lambda expressions, method and constructor references, and functional interfaces. You’ll design and write applications better using the new standards in Java 8 and the JDK.