*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 typesakka.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 andjava.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 
<http://doc.akka.io/docs/akka/2.4.2/java/stream/migration-guide-2.0-2.4-java.html>
 and Scala 
<http://doc.akka.io/docs/akka/2.4.2/scala/stream/migration-guide-2.0-2.4-scala.html>)
 
for the details.

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

   - fixed a possible replay consistency issue 
   <https://github.com/akka/akka/issues/19694> in Akka Persistence and a too 
   tight specification <https://github.com/akka/akka/issues/19728> in the 
   TCK
   - silence heartbeat logging <https://github.com/akka/akka/issues/19381> in 
   ClusterClient and add a notification when it cannot reconnect 
   <https://github.com/akka/akka/issues/18577>
   - provide an API for ClusterSharding state retrieval 
   <https://github.com/akka/akka/issues/17695>
   - improvements to BackoffSupervisor 
   <https://github.com/akka/akka/issues/19246>
   - fix documentation for max-pool-size settings 
   <https://github.com/akka/akka/issues/19201> (this was a little 
   unintuitive, makes a good trivia question!)
   - add Java API for ByteString builders 
   <https://github.com/akka/akka/issues/19085>
   - fix a race condition that could lead to lost messages in 
   DistributedPubSub <https://github.com/akka/akka/issues/19017>
   - add an ask() variant that can be used without sender(), i.e. by putting 
   the promise reference into the message 
   <https://github.com/akka/akka/issues/15819>
   - added Java patterns for CompletionStage, see PatternsCS 
   <http://doc.akka.io/japi/akka/2.4.2/akka/pattern/PatternsCS.html>
   
Closed issues since version 2.4.1 can be found here 
<https://github.com/akka/akka/issues?q=milestone%3A2.4.2+is%3Aclosed>.


*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!

The full list and detailed stats are in the news item on akka.io here 
<http://akka.io/news/2016/02/17/akka-2.4.2-released.html>.


Thanks a lot to every single one of you!

Happy hakking!


– The Akka Team

-- 
>>>>>>>>>>      Read the docs: http://akka.io/docs/
>>>>>>>>>>      Check the FAQ: 
>>>>>>>>>> http://doc.akka.io/docs/akka/current/additional/faq.html
>>>>>>>>>>      Search the archives: https://groups.google.com/group/akka-user
--- 
You received this message because you are subscribed to the Google Groups "Akka 
User List" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to akka-user+unsubscr...@googlegroups.com.
To post to this group, send email to akka-user@googlegroups.com.
Visit this group at https://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to