we—the Akka committers—proudly present the second development milestone for Akka 2.5. Since the release of Akka 2.4.0 (already 17 months ago) we have incrementally added many new features to the 2.4.x release series, including Akka Streams and HTTP. That has worked well and we think you appreciate the API stability of all those patch versions. However, there are some changes we cannot do in patch versions and therefore it is time for Akka 2.5. Especially we want to promote some experimental modules to fully stable modules and incorporate some API improvements before declaring them stable.
Akka 2.5 is binary backwards compatible with 2.4 with the ordinary exceptions listed in a separate section below. This milestone is close to the final result. The performance improvements of the Streams materializer is the remaining major thing we want to complete. (ETA for 2.5.0-RC1 is in 3 weeks).
Now is an excellent time for you to try the milestone out and give us feedback before the final release. Read the migration guide as the first step.
Since 2.5-M1 we have have completed many small things and continued the implementation of delta-CRDTs for more data types. Thanks a lot to @gosubpl for participating in the CRDT work, and to @ortigali for many excellent PRs.
We have also released Akka Persistence plugin for Cassandra with version 0.50-M2 that is compatible with Akka 2.5-M2.
Akka 2.5.x is backwards binary compatible with previous 2.4.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.12.x is is not binary compatible with Scala 2.11.x, which means that Akka’s binary compatibility property only holds between versions that were built for a given Scala version—akka-actor_2.12-2.5-M2.jar is compatible with akka-actor_2.12-2.4.17.jar but not with akka-actor_2.11-2.4.17.jar.
Binary compatibility is not maintained for the following:
- akka-testkit and akka-multi-node-testkit
- experimental modules, such as akka-typed and akka-contrib
- features, classes, methods that were deprecated in 2.4.0 or earlier and removed in 2.5.x
Being binary compatible means that applications and libraries built on top of Akka 2.4.x continue to work with Akka 2.5.x without recompilation (subject to the conditions below), which implies that Akka HTTP as well as Play Framework 2.5 can be combined with Akka 2.5.
When migrating a code base to Akka 2.5 please refer to the migration guide in order to profit from some of the improvements.
AbstractActor has been promoted from its experimental state and while doing this we did some small, but important, improvements to the API that will require some mechanical changes of your source code. See the Actor (Java) section in the migration guide.
It is possible to do a rolling update from Akka 2.4.17 to 2.5-M2 but some configuration changes might be needed first. See the Rolling Update section in the migration guide.
Akka Persistence plugins released for 2.4 might not be compatible with the changes that were done in the API for Persistence Query in 2.5. We kindly ask the Akka Persistence plugin maintainers to migrate and release for 2.5. See the Persistence Query section in the migration guide.
The complete list of closed tickets can be found on the 2.5-M2 milestone on github.
For this release we had the help of 35 contributors – thank you all very much!
Credits: commits added removed 23 5676 2076 Patrik Nordwall 12 1547 862 Johan Andrén 10 162 55 Johannes Rudolph 8 842 920 ortigali 3 24 18 Nafer Sanabria 2 1190 17248 Martynas Mickevičius 3 1344 180 Konrad `ktoso` Malawski 2 128 42 Roland Kuhn 2 132 24 gosubpl 2 121 22 Kirill Plyashkevich 2 17 11 drewhk 2 5 6 Heiko Seeberger 1 93 5 Olli Helenius 1 56 9 Kirill Yankov 1 47 1 Javier Puerto 1 32 11 Alexander Golubev 1 32 10 Andrey Baidarov 1 13 28 hhimanshu 1 20 19 Hawstein 1 10 15 Richard Imaoka 1 13 11 Guido Medina 1 19 1 Damien Bailly 1 6 2 Jeroen Gordijn 1 5 3 sebbes 1 3 3 Tal Pressman 1 3 2 toaditoad 1 2 2 Philip L. McMahon 1 2 2 Ikrom 1 1 1 Keiji Yoshida 1 1 1 IanGrima 1 2 0 Andrey Kuznetsov 1 1 1 Earl St Sauver 1 1 1 Nicolas Rémond 1 1 1 Nikita Marshalkin 1 0 0 Bill Davis
– The Akka Team