Akka 23.10 Released

Dear hakkers,

Today we are excited to announce the availability of the Akka 23.10 release. It consists of the following modules:

  • Akka (core) 2.9.0

  • Akka HTTP 10.6.0

  • Akka gRPC 2.4.0

  • Akka Management 1.5.0

  • Alpakka Kafka 5.0.0

  • Alpakka 7.0.0

  • Akka Persistence R2DBC 1.2.0

  • Akka Persistence JDBC 5.3.0

  • Akka Persistence Cassandra 1.2.0

  • Akka Projections 1.5.0

  • Akka Diagnostics 2.1.0

  • Akka Insights 2.19.0 (to be released soon)

Starting from this release, the Akka releases are now published to our own dedicated repository. This change provides us with more control over the distribution process, ensuring faster and more secure updates for our users. The repository needs to be added to your build configuration as described in the migration guide.

New features

For deeper insight into some of these new features, please visit the Lightbend blog, which will publish articles about the features during the next month.

Akka Edge

Akka Edge is a set of features that will help you with stretching an Akka system to the Edge. Akka Edge is similar to Akka Distributed Cluster and they share features and implementation, but Akka Edge is intended for use cases with even more geographically distributed services and possibly in more resource constrained environments.

It comes with new features such as:

  • Projections over gRPC for the Edge — asynchronous brokerless service-to-service communication.

  • Connections are always established from the edge service.

  • Scalability and efficiency improvements to handle the large scale of many edge services.

  • Support for more constrained environments such as running with GraalVM native image and lightweight Kubernetes distributions.

  • Support for multidimensional autoscaling and scale to near zero.

H2 dialect in R2DBC persistence plugin

Support for the lightweight H2 database has been added to Akka Persistence R2DBC and Akka Projections. H2 can be useful as in-memory database for testing or as a lightweight database for single node systems.

Starting projection from snapshot

The projection can use snapshots as starting points and thereby reducing number of events that have to be loaded. This can be useful if the consumer starts from zero or if it has been disconnected for a long while.

Scalability improvements for many projections

Many projection consumers of the same events can share the same event stream from the database.

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.

The following CVEs are addressed in this build.

Bug fixes

Other improvements

Dependency updates

  • Scala 2.13.12 and 3.3.1

  • Jackson 2.15.2

  • Protobuf Java 3.24.0

  • gRPC Java 1.58.0

  • Guava 32.0.1-android

  • Config 1.4.3

  • Aeron 1.42.1, Agrona 1.19.2

  • r2dbc-pool 1.0.1

  • r2dbc-postgresql 1.0.2

  • Cassandra java-driver-core 4.17.0

  • Netty 4.1.100

  • mysql-connector-java 8.1.0

  • h2 2.2.224

  • Kafka Client 3.5.1

  • Avro 7.4.0

  • amqp-client 5.18.0

Compatibility

To streamline our product we’re discontinuing support for Java 8 and Scala 2.12. Our recommendation is to migrate to Java 11 or 17 and Scala 2.13. Akka 23.05 (Akka 2.8.x) with Java 8 and Scala 2.12 will be supported until October 31, 2024.

Akka is cross compiled to Scala 3.3.1, if you use Scala 3 you should update to at least version 3.3.1.

Akka 2.9.x is compatible with Akka 2.8.x, 2.7.x and 2.6.x aside from removal of a few deprecated modules:

  • Cluster client has been deprecated since Akka 2.6.0 (2019-11-06). Details on how to migrate can be found in the Akka 2.6 docs.

  • The old “Typed Actor” API (akka.actor.TypedActor) has been deprecated since Akka 2.6.0 (2019-11-06) and has been dropped. No detailed migration guide exists, the recommendation is to move to the new Akka Typed APIs.

  • The Akka SSLConfig convenience and methods accepting it has been deprecated since Akka 2.6.0 and has been dropped. Usage should be replaced with directly creating a javax.net.ssl.SSLEngine using the JDK APIs.

  • Persistent FSM has been deprecated since Akka 2.6.0 (2019-11-06) and has now been dropped. Details on how to migrate can be found in the Akka 2.8 docs.

By compatible, we mean:

  • Akka 2.9.x is binary backwards compatible with 2.8.x, 2.7.x and 2.6.x, i.e. a library built with Akka 2.6.x can still be used with an application using Akka 2.9.x.

  • No configuration changes are needed for updating an application from Akka 2.6.x, 2.7.x or 2.8.x to 2.9.x.

  • Rolling update of Akka Cluster from Akka 2.6.x, 2.7.x or 2.8.x to 2.9.x is fully supported.

  • Other modules included in Akka 23.10 are also compatible with their previous version.