Dear hAkkers,

we—the Akka committers—are proud to announce the final release of Akka 2.4.0.

The key features of the 2.4.0 release are:

Things that will be included in upcoming 2.4.x releases

The Java API and the documentation for Akka Typed will be added. The Scala API was released in 2.4.0 in order to gather early feedback on this rather exciting new module.

We will incorporate Streams & HTTP once ready (to become an experimental module, as usual) into 2.4.x. Note that you can use Akka Streams 1.0 together with Akka 2.4.0.

Binary Compatibility

Akka 2.4.x is backwards binary compatible with previous 2.3.x versions (exceptions listed below). This means that the new JARs are a drop-in replacement for the old one (but not the other way around) as long as your build does not enable the inliner (Scala-only restriction). It should be noted that Scala 2.11.x is is not binary compatible with Scala 2.10.x, which means that Akka’s binary compatibility property only holds between versions that were built for a given Scala version—akka-actor_2.11-2.4.0.jar is compatible with akka-actor_2.11-2.3.14.jar but not with akka-actor_2.10-2.3.14.jar.

Binary compatibility is not maintained for the following:

akka-testkit and akka-multi-node-testkit

experimental modules, such as akka-persistence and akka-contrib

features, classes, methods that were deprecated in 2.3.0 or earlier and removed in 2.4.x

Being binary compatible means that applications and libraries built on top of Akka 2.3.x continue to work with Akka 2.4.x without recompilation (subject to the conditions below), which implies that Akka Streams & HTTP as well as Play Framework 2.4 can be combined with Akka 2.4.

The dependency to Netty has been updated from version 3.8.0.Final to 3.10.3.Final. The changes in those versions might not be fully binary compatible, but we believe that it will not be a problem in practice. No changes were needed to the Akka source code for this update. Users of libraries that depend on 3.8.0.Final that break with 3.10.3.Final should be able to manually downgrade the dependency to 3.8.0.Final and Akka will still work with that version.

The dependency to Typesafe Config has been updated from 1.2.1 to 1.3.0 which should be binary compatible for the vast majority users, except for obscure edge cases as its changelog points out. This change was made in order in order to use new JDK8 specific features in the library as well as to align Akka with Play which is now also depending on 1.3.0.

Migration Guide

When migrating a code base to 2.4 please refer to the migration guide in order to profit from some of the improvements.

Old Akka Persistence plugins released for 2.3 are not compatible with the changes that were done in 2.4. We kindly ask the Akka Persistence plugin maintainers to migrate and release for 2.4.0. Even though there are rather many API changes since 2.3 in the Persistence plugin API it should not be difficult to migrate. See the Persistence Plugin APIs section in the migration guide.

We have carefully made changes in Akka Persistence with the goal that events stored with Akka Persistence 2.3.14 should still be possible to replay with 2.4.x, i.e. no lost data. Specific journal implementations may of course violate that goal.

General Remarks

357 issues were closed since 2.3.0. The complete list can be found in the 2.4-M1, 2.4-M2, 2.4-M3, 2.4.0-RC1, 2.4.0-RC2, 2.4.0-RC3 and 2.4.0 github issues milestones.

Thanks to the Community! For this release we had the help of 134 committers. For the full stats see the announcement on the website.

Happy hakking!