Migration Guide 2.8.x to 2.9.x

Akka 2.9.x is binary backwards compatible with 2.8.x with the ordinary exceptions listed in the Binary Compatibility Rules.

No configuration changes are needed for updating an application from Akka 2.8.x to 2.9.x.

Rolling updates of Akka Cluster from Akka 2.8.x to 2.9.x is fully supported.

A few deprecated features has been removed in Akka 2.9.x, see sections below.

Akka repository

The Akka dependencies are available from Akka’s library repository. To access them there, you need to configure the URL for this repository.

sbt
resolvers += "Akka library repository".at("https://repo.akka.io/maven")
Maven
<project>
  ...
  <repositories>
    <repository>
      <id>akka-repository</id>
      <name>Akka library repository</name>
      <url>https://repo.akka.io/maven</url>
    </repository>
  </repositories>
</project>
Gradle
repositories {
    mavenCentral()
    maven {
        url "https://repo.akka.io/maven"
    }
}

Support for Java 8 removed

The published artifacts are targeting Java 11, and later. Supported Java versions are 11 and 17.

Support for Scala 2.12 removed

The published artifacts are targeting Scala 2.13 and Scala 3.3.

Deprecated Cluster Client removed

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 here: https://doc.akka.io/libraries/akka-core/2.6/cluster-client.html#migration-to-akka-grpc

Deprecated Typed Actor removed

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.

Deprecated Akka SSLConfig removed

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.

The dependency to ssl-config-core has been removed. If you need ssl-config for other reasons, such as running with older versions of Akka HTTP you can add the dependency to your build:

Maven
<properties>
  <scala.binary.version>2.13</scala.binary.version>
</properties>
<dependencies>
  <dependency>
    <groupId>com.typesafe</groupId>
    <artifactId>ssl-config-core_${scala.binary.version}</artifactId>
    <version>0.6.1</version>
  </dependency>
</dependencies>
sbt
libraryDependencies += "com.typesafe" %% "ssl-config-core" % "0.6.1"
Gradle
def versions = [
  ScalaBinary: "2.13"
]
dependencies {
  implementation "com.typesafe:ssl-config-core_${versions.ScalaBinary}:0.6.1"
}

Persistent FSM

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 here: https://doc.akka.io/libraries/akka-core/2.8/persistence-fsm.html#migration-to-eventsourcedbehavior

Migration Guide 2.9.2 to 2.9.3

Named circuit breaker lookup was taking a ExtendedActorSystem requiring a typecast, is now requiring a ClassicActorSystemProvider. This change is source compatible, but not binary compatible, so will require a recompile if you are using named circuit breakers.

Found an error in this documentation? The source code for this page can be found here. Please feel free to edit and contribute a pull request.