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
andask
, #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