Introducing Akka Cloud to Edge Continuum. Build once for the Cloud. Seamlessly deploy to the Edge. Learn More
 

News & Articles

Full archive

January 26

2016

Akka 2.4.2-RC1 Released!

Dear hakkers,

we—the Akka committers—are proud to announce the FIRST RELEASE CANDIDATE for the upcoming release of Akka 2.4.2. The main change in this release is that it includes Streams & HTTP, with the akka-stream, akka-stream-testkit, akka-parsing, and akka-http-core modules no longer being marked “experimental”. In comparison to Streams & HTTP 2.0 the main changes are:

  • significant performance improvement for HTTP handling, now reaching roughly 75% of Spray’s performance—this is not the end of the performance work, we have only just begun
  • replacement of all uses of the Unit type (represented as BoxedUnit in Java) with the more descriptive types akka.Done (for signaling successful completion) and akka.NotUsed (for materialization results of stages that do not produce a value)
  • usage of Java 8 types in the Java DSLs: java.util.Optional instead of scala.Option and java.util.concurrent.CompletionStage instead of scala.concurrent.Future

Especially the second and third point mean that porting code from Streams & HTTP 2.0 to Akka 2.4.2 will require some mechanical source code changes, please refer to the migration guide for the details. While the core team was concentration on these sweeping changes some community members; Alexander Golubev, Stefano Galarraga, Gilad Hoch and @2beaucoup to name a few, got busy contributing new functionality and improving the existing one:

  • Automatic and manual reset of the BackoffSupervisor
  • CircuitBreaker implemented as an Actor pattern
  • Noisy logging of cluster heartbeats now silenced but available through a config setting
  • A rare bug where a node joining a cluster crashed before join completed and then not being able to connect after restart was fixed
  • Option to eagerly initialize persistence plugins
  • Improved OSGi manifests for HTTP and streams
  • New stream combinators added: batch, batchWeighted, reduce and watchTermination.
  • HTTP - server side request timeouts added
  • Connection pools no longer fail if they are limited to a single connection
  • New directives to turn a posted form to maps and sequences

We intend to release version 2.4.2 as soon as we are confident that it is reasonably bug free and the documentation is top notch as well: we are aware that the getting started experience for Streams & HTTP is not perfect in places and there are some features that are entirely missing—stay tuned for updates and please let us know of anything you find to be suboptimal.

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.2-RC1.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, akka-multi-node-testkit and akka-persistence-tck
  • experimental modules:
    • akka-persistence-query-experimental
    • akka-distributed-data-experimental
    • akka-typed-experimental
    • akka-http-experimental
    • akka-http-testkit-experimental
    • akka-http-spray-json-experimental
    • akka-http-xml-experimental
    • akka-http-jackson-experimental
  • features, classes, methods that were deprecated in 2.3.0 or earlier and removed in 2.4.x

Credits

Thanks to the Community! For this release we had the help of 32 committers. Special thanks to Alexander Golubev for his involvement in the development of Akka Stream.

commits added removed
   56   58210   51301 Konrad Malawski
   29    3297    4255 Roland Kuhn
   14    2239    1056 galarragas
   13    1604    1477 Endre Sándor Varga
   11     734     276 Johan Andrén
    9     601     382 Martynas Mickevičius
    9     643     202 Patrik Nordwall
    8     531     362 Johannes Rudolph
    6     174     232 Viktor Klang
    5    1185     648 Alexander Golubev
    5     985     414 Gilad Hoch
    3      95     305 2beaucoup
    3     567     206 Tal Pressman
    3     106       8 Brian Topping
    3     622     233 Mathias
    3       5       6 Lukasz Kryger
    2     343     104 Wojciech Jurczyk
    2       5       5 Jakub Kozłowski
    2       8      10 Björn Antonsson
    2      31      13 Matthias Sperl
    1    1893    1893 Prayag Verma
    1      43      23 Tim Harper
    1      67      40 Roland Ferenczy
    1      12      12 Sören Brunk
    1     313       1 israel
    1      21       0 Balazs Kossovics
    1      38       5 Eugene Dzhurinsky
    1       2       0 raam
    1      55       0 Kaspar Fischer
    1       8       8 Brendan McAdams
    1       2       2 Brian Drupieski
    1     808     441 Raymond Roestenburg
    1       1       1 Chris Brett

Happy hakking!

– The Akka Team