Akka 22.10 Released
Dear hakkers,
Today we are proud to announce the availability of the Akka October 2022 (22.10) release. It consists of the following modules:
-
Akka (core) 2.7.0
-
Akka HTTP 10.4.0
-
Akka gRPC 2.2.0
-
Akka Management 1.2.0
-
Alpakka Kafka 4.0.0
-
Alpakka 5.0.0
-
Akka Persistence R2DBC 1.0.0
-
Akka Persistence JDBC 5.2.0
-
Akka Persistence Cassandra 1.1.0
-
Akka Projections 1.3.0
License change
The license for using Akka in production has been changed to Business Source License v1.1. Why We Are Changing the License for Akka explains the reasons and a detailed FAQ is available to answer many of the questions that you may have about the license change.
New features
The noteworthy features are:
-
The new Projections over gRPC feature makes it easy to build brokerless service-to-service communication. It uses the event journal on the producer side and Akka Projections event processing and offset tracking on the consumer side. The transparent data transfer between producers and consumers is implemented with Akka gRPC. Read the blog post and the reference documentation.
-
Akka Persistence plugin for Postgres and Yugabyte with R2DBC. Including the new
eventsBySlices
query and full Akka Projections implementation. See reference documentation. -
Alternative API for
AbstractBehavior
to use Java 17 (and later) switch statements (or Kotlin when expressions) for message matching instead of builders. See documentation. -
New feature for testing
EventSourcedBehavior
andDurableStateBehavior
with the synchronousBehaviorTestKit
. See documentation. -
Support for effectful
ask
in the synchronousBehaviorTestKit
. -
Persistence Queries emit
DeletedDurableState
when state is deleted, with implementation in the RD2BC plugin. -
Official support for Java 17. Java 8 and 11 are also supported.
-
Official support for Scala 3.1 for Akka core. Scala 2.12 and 2.13 are also supported.
Security Updates
We run automated security vulnerability and license policy scanning of dependencies. Several dependencies have been updated to fix security vulnerabilities and keep up with latest improvements. Fortify SCA scan has also been performed without detecting any vulnerabilities.
The following CVEs are addressed in this build.
In Akka and Akka HTTP:
-
CVE-2022-42003
-
CVE-2020-36518
-
CVE-2022-42004
-
CVE-2022-42003
In Alpakka:
-
CVE-2022-22970
-
CVE-2022-22950
-
CVE-2022-22971
-
CVE-2022-22968
-
CVE-2020-13957
-
CVE-2021-37404
-
CVE-2022-25168
-
CVE-2022-26612
-
CVE-2020-9492
-
CVE-2017-15713
-
CVE-2021-22569.
Bug fixes and other improvements
-
Fixed bug related to snapshots in Replicated Event Sourcing.
-
Fixed bug related to
JsonFraming
in Akka Streams. -
Change of default mailbox in Akka Streams for better performance.
-
New
mapWithResource
operator for interacting with a blocking resource with a lifecycle in streams. -
New
Sink.combine
for easy fanout to multiple sinks. -
Many small performance improvements in Akka Streams.
-
Change default dispatcher for Akka Persistence plugins. It was by default a pinned dispatcher and is now the ordinary default dispatcher, but most plugins override this setting themselves anyway.
-
Possibility to define stash capacity per
EventSourcedBehavior
/DurableStateBehavior
to override the global config.
Dependency updates
-
The Jackson dependency has been updated to 2.13.4. This update includes many fixes and changes to Jackson, but it should not introduce any incompatibility in serialized format.
-
Many other dependencies have been updated, especially in Alpakka, such as dependencies to Spring, Apache Solr, Apache Hadoop, and Protocol Buffers.
-
Scala versions have been updated to 2.12.17, 2.13.10 and 3.1.3.
Compatibility
Akka 2.7.x is fully compatible with Akka 2.6.x.
-
Akka 2.7.x is binary backwards compatible with 2.6.x.
-
No configuration changes are needed for updating an application from Akka 2.6.x to 2.7.x.
-
Rolling updates of Akka Cluster from Akka 2.6.x to 2.7.x is fully supported.
-
No deprecated features or APIs have been removed in Akka 2.7.x.
Other modules included in Akka 22.10 are also compatible with their previous version.