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

News & Articles

Full archive

February 17

2016

Akka 2.4.2 Released!

Dear hakkers,

we—the Akka committers—are proud to announce the FINAL RELEASE of Akka 2.4.2. The main change in this release is that it includes Streams & HTTP. Some of these new modules are still marked experimental due to impending API changes that we could not yet finish, in particular these are akka-http (the DSLs) and the HTTP marshaller modules for spray-json, jackson, and scala-xml. 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 for long-lived HTTP connections—this is not the end of the performance work, we have only just begun (in particular the number of connections per second needs more work)
  • 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 Java and Scala) for the details.

But also in the rest of Akka much work was done, with highlights being:

Closed issues since version 2.4.1 can be found here.

Binary Compatibility

Akka 2.4.2 is backwards binary compatible with previous 2.4.x and 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:

  • testkits:
    • akka-testkit
    • akka-multi-node-testkit
    • akka-persistence-tck
    • akka-stream-testkit
    • akka-http-testkit
  • experimental modules:
    • akka-persistence-query-experimental
    • akka-distributed-data-experimental
    • akka-typed-experimental
    • akka-http-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
  • everything marked as INTERNAL API in the JavaDoc.

Outlook

The next version will focus on getting the Akka HTTP Java DSL aligned with the Scala DSL—this is the reason for the “experimental” designation that remains on this module for now. Another focus is to further optimize our Stream internals and HTTP usage of same so that the performance will be comparable to Spray for all cases.

Credits

Due to incorporating the full development of Streams & HTTP this release is HUMONGOUS: 2493 files changed, 179223 insertions, 4238 deletions. Our statistics script counts 101 committers:

commits added removed
  248   34061   15985 Johannes Rudolph
  217   37657   15740 Konrad Malawski
  183   61096   25081 Mathias
  179   35171   21224 Patrik Nordwall
  155   27724   21264 Roland Kuhn
  143   67772   24277 Endre Sándor Varga
   62    6836    7209 Viktor Klang
   57    8558    2049 Alexander Golubev
   53    5901    3135 Martynas Mickevičius
   46    7420    6288 Johan Andrén
   38    1099    1284 2beaucoup
   28   11195    5826 Björn Antonsson
   14    1706     523 galarragas
   13    2529     647 Martynas Mickevicius
    7    1052     283 Gilad Hoch
    7     875     271 lolski
    6      68      69 Heiko Seeberger
    5     131      17 Brian Topping
    5     473      77 Anton Karamanov
    5     668       5 Benjamin Thuillier
    4     404      56 Tal Pressman
    4       8       7 Richard Bradley
    3      16       1 hepin
    3       7       7 Philip L. McMahon
    3     120      38 Chris Baxter
    3      32      14 Matthias Sperl
    3     165      33 Bojan Petrovic
    3      33      10 Daniel Wegener
    3     258      16 Wojciech Jurczyk
    3       5       6 Lukasz Kryger
    3     209     243 André Rüdiger
    2     345      21 israel
    2      47      24 Tim Harper
    2      10      23 naferx
    2      18      18 Eric Nelson
    2      40      35 Alexey Romanchuk
    2      29       8 Balazs Kossovics
    2     138      11 Jisoo Park
    2      17      14 Matthias Lüneberg
    2      13      13 Sören Brunk
    2       5       5 Jakub Kozłowski
    2       2       2 netcomm
    2     148      24 Catalin Ursachi
    2      67      22 Mathias Bogaert
    1      67      40 Roland Ferenczy
    1       8       6 keredin
    1       0       0 Björn Antonsson
    1      25       1 James Roper
    1      64       2 kulikov
    1      18       9 Volker Stampa
    1    1893    1893 Prayag Verma
    1       2       2 Brian Drupieski
    1       1       1 Johan Andrén
    1       1       1 Dorin Cobzac
    1     252     258 Philipp Hofmann
    1      40       7 Peter Vlugter
    1       1       1 Jun
    1       6       0 Ryan Bair
    1     495       0 Martin Krasser
    1       2       0 raam
    1      55       0 Kaspar Fischer
    1     220       5 Rich Dougherty
    1     169      19 Alek Storm
    1      12       1 Olivier ROLAND
    1       3       3 Julian Tescher
    1       3      24 drewhk
    1     227      64 pjan vandaele
    1       1       1 egisj
    1       6       0 André Cardoso
    1       1       1 Chris Brett
    1       8       0 Raman Gupta
    1       6       7 Denis Mikhaylov
    1       3       3 Fehmi Can Saglam
    1       6       2 Daniel Moran
    1       2       2 Jason Zaugg
    1     784     417 Raymond Roestenburg
    1      20      15 Kirill Plyashkevich
    1      38       5 Eugene Dzhurinsky
    1       1       1 Felix Geller
    1      16      16 何品
    1      70       2 Alois Cochard
    1      37       8 Frank Murphy
    1     352      50 qian miao
    1     216       1 Iain Monro
    1      81      81 kukido
    1       6       6 Brendan McAdams
    1      23       5 Greg Methvin
    1       0       1 Arnout Engelen
    1     243       0 Philipp
    1       1       1 luben karavelov
    1       4       0 Harit Himanshu
    1      14       8 Otto Chrons
    1      26       1 Anderson Osagie
    1      51      35 prettynatty
    1       1       1 Piotr Jarzemski
    1     147      33 adebski
    1       7       0 Nafer Sanabria
    1      97      28 Greg Beech
    1       1       1 Jesse Haber-Kucharsky
    1       1       1 Jan Ypma

Thanks a lot to every single one of you!

Happy hakking!

– The Akka Team