Dear hakkers,

we—the Akka committers—proudly present the second development milestone for
Akka 2.4. Since the release of Akka 2.4-M1 (one month ago) much has
happened, in particular around Akka Persistence and Akka Cluster tools.

Besides a plethora of small improvements the main changes relative to
2.4-M1 are:


   -

   incorporate Patrik’s akka-data-replication
   <https://github.com/patriknw/akka-data-replication> under the new module
   name akka-distributed-data-experimental
   <http://doc.akka.io/docs/akka/2.4-M2/scala/distributed-data.html> (see
   akka-data-replication migration guide
   <https://github.com/patriknw/akka-data-replication>), the Distributed
   Data module is useful for sharing eventually consistent data (CRDTs)
   between nodes in an Akka Cluster
   -

   improved support for Akka Persistence event migrations by Serializer
   with String Manifest
   
<http://doc.akka.io/docs/akka/2.4-M2/scala/serialization.html#Serializer_with_String_Manifest>
   and Event Adapters
   <http://doc.akka.io/docs/akka/2.4-M2/scala/persistence.html#Event_Adapters>
   -

   make Akka Persistence failure handling
   <http://doc.akka.io/docs/akka/2.4-M2/scala/persistence.html#Failures>
   more robust and support rejections of events
   -

   Persistent FSM
   <http://doc.akka.io/docs/akka/2.4-M2/scala/persistence.html#Persistent_FSM>,
   thanks to an awesome contribution from leonidb
   <https://github.com/leonidb>
   -

   various improvements in Akka Persistence aiming to finalize its APIs,
   refer to the migration guide or closed persistence tickets for details
   -

   use custom failure detection in Cluster Client to avoid quarantining in
   case of transient network failures
   -

   support graceful shutdown
   
<http://doc.akka.io/docs/akka/2.4-M2/scala/cluster-sharding.html#Graceful_Shutdown>
   in Cluster Sharding
   -

   various API and configuration improvements of Cluster Sharding, Cluster
   Singleton, Distributed PubSub and Cluster Client



Akka 2.4 Roadmap

What remains to be done before we can release 2.4.0-RC1 is to


   -

   complete the Java API and the documentation for Akka Typed
   -

   finalize Akka Persistence on the Write Side (i.e. PersistentActor will
   be non-experimental; a new stream based API for the Read Side will be
   included in a new experimental module)
   -

   incorporate Streams & HTTP once ready (to become an experimental module,
   as usual)


We will perform this work within the next weeks, releasing further
milestones when appropriate. Please do what you usually do so well: try out
our latest and report back when things break, not work as advertised, feel
strange, or even when you are happy :-) Especially concerning binary
compatibility we will need help from the community (you!) since we cannot
run all possible programs ourselves; we base our BC efforts on the MiMa
plugin <https://github.com/typesafehub/migration-manager> but that is no
perfect guarantee that everything will work out of the box.

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-M2.jar is compatible with akka-actor_2.11-2.3.11.jar
but not with akka-actor_2.10-2.3.11.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.x 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 the upcoming Play Framework 2.4 can be combined with Akka 2.4.

Migration Guide

When migrating a code base to 2.4 please refer to the migration guide
<http://doc.akka.io/docs/akka/2.4-M2/project/migration-guide-2.3.x-2.4.x.html>
in order to profit from some of the improvements.

Old Akka Persistence plugins are not compatible with the changes that were
done in 2.4-M2. Now is a good time for Akka Persistence plugin maintainers
to migrate and release a preview for 2.4-M2. Even though there are rather
many API changes in the Persistence plugin API it should not be difficult
to migrate. See the Persistence Plugin APIs
<http://doc.akka.io/docs/akka/2.4-M2/project/migration-guide-2.3.x-2.4.x.html#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.11 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

49 issues were closed. The complete list can be found in the 2.4-M2 github
issues milestone <https://github.com/akka/akka/issues?q=milestone%3A2.4-M2>.

For the full stats see the announcement on the website
<http://akka.io/news/2015/06/26/akka-2.4-M2-released.html>.

Happy hakking!


-- 
Cheers,
Konrad 'ktoso' Malawski
Akka <http://akka.io/> @ Typesafe <http://typesafe.com/>

-- 
>>>>>>>>>>      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 http://groups.google.com/group/akka-user.
For more options, visit https://groups.google.com/d/optout.

Reply via email to