Akka 2.6.4 released

Dear hakkers,

We are excited to announce a new patch release of Akka 2.6. In addition to bug fixes and improvements it includes 3 bigger new features related to Akka Cluster. Notable changes relative to 2.6.3 include:

  • Reliable delivery, see description below, #20984
  • Sharded daemon processes, see description below, #28710
  • Distributed publish subscribe, see description below, #26338
  • Use supervision for exceptions from messageAdapter, pipeToSelf and ask, #28592
  • ActorRef that silently ignores all messages, #25306
  • Support for base64 in ByteString and performance improvement of ByteString.decodeString, #28697
  • Improve cancellation in ExplicitlyTriggeredScheduler, thanks to @bszwej, #28604
  • Support for log marker in Streams, thanks to @duxet, #28450
  • Handle tagged events in InmemJournal, thanks to @odd #28552
  • Fix loading of lease implementation in Java, #28685
  • Improve Sharding queries, #27406
  • Improve PostStop for guardian behavior, #28557
  • Update Jackson to 2.10.3, #28678
  • Update Aeron to 1.26.0, #28690

A total of 84 issues were closed since 2.6.3. The complete list can be found on the 2.6.4 milestone on github.

Reliable delivery

Reliable delivery is useful for interactions between actors that require at-least or effectively once processing. Lost messages are detected, resent and deduplicated as needed. In addition, it also includes flow control for
the sending of messages to avoid that a fast producer overwhelms a slower consumer or sends messages at a higher rate than what can be transferred over the network.

There are 3 supported patterns for point-to-point, work pulling and Cluster Sharding.

Even if the primary purpose is to use this in an Akka Cluster it works with exactly the same APIs for a local ActorSystem. The flow control and work pulling mechanism can be equally important for local communication between actors.

You find more information and code examples in the documentation for reliable delivery.

Since this is a new feature it’s marked as “May Change”. It needs feedback from real usage before finalizing the API, and your help with trying it out is very welcome. It is also not recommended to use this module in production just yet.

Sharded daemon processes

Sharded daemon processes is an internal feature from Lagom that has been backported to Akka. It allows a number of processing actors to be kept alive and balanced across the cluster. The main envisioned use case is workers that consume tagged Akka persistence events and update read side projections in CQRS applications.

You find more information and a code example in the documentation for sharded daemon processes.

Since this is a new feature it’s marked as “May Change”. We are however not expecting any major changes as the API surface is very small.

Distributed publish subscribe

Distributed pub sub for Akka Typed allows for defining topics which actors on any node in the cluster can subscribe to. When a message is published to the topic the message is delivered to all known subscribers. This cluster tool is implemented on top of the typed system receptionist rather than the pre existing classic distributed publish subscribe tool.

The distributed publish subscribe topics also work in a non-cluster setting where all publishers and subscribers are local and can therefore be used as an alternative to the ActorSystem event bus.

You find more information and a code example in the documentation for distributed pub sub.

Credits

For this release we had the help of 24 committers – thank you all very much!

commits  added  removed
     25   4224      397 Johan Andrén
     17  18929       73 Patrik Nordwall
     14    470       65 Christopher Batey
     10    273      125 Arnout Engelen
      5    417       28 Renato Cavalcanti
      4    144       42 Enno
      3    170       12 Ignasi Marimon-Clos
      3     46       19 Johannes Rudolph
      2   3458     1448 Helena Edelson
      2    999        2 eyal farago
      2    123        5 Razvan Vacaru
      2      6        1 Arnaud Burlet
      1    127       10 Bartłomiej Szwej
      1    115        6 Viktor Klang (√)
      1     88        0 mghildiy
      1     72        0 Evgeny Sidorov
      1      9        6 Odd Möller
      1      6        1 Yury Gribkov
      1      3        1 Jacek Ewertowski
      1      0        3 yiksanchan
      1      2        1 Bartosz Firyn
      1      1        1 Nicolas Deverge
      1      1        1 Clément Grimal
      1      1        1 Oliver Wickham

The Akka core team is employed by Lightbend. If you’re looking to take your Akka systems to the next level, let’s set up a time to discuss our enterprise-grade expert support, self-paced education courses, and technology enhancements that help you manage, monitor and secure your Akka systems - from development to production.

Happy hakking!

– The Akka Team

1 Like