Skip to main content
Version: Early Access

Akka to Pekko Migration for Release

Akka is a toolkit for building highly concurrent, distributed, and resilient message-driven applications for Java and Scala. Apache Pekko is a fork of Akka 2.6.x, prior to the Akka project’s adoption of the Business Source License.

Tip: If your Release cluster setup doesn't have any Akka-related configurations, no need to make any changes in the configurations.

From the 24.1 version onwards, Digital.ai Release has adopted Apache Pekko and migrated all the required code and configurations from Akka to Pekko.

Note: When you try to set up Release in cluster mode, and if you encounter any occurrences of the term akka within the configuration files located in the conf folder, the setup will fail. To fix this issue, replace those instances with the corresponding configuration settings associated with Pekko. This involves modifying any relevant packages, class names, jar names, URLs, and so on to align with the configuration specifications specific to the Pekko framework.

For more detailed instructions about the configuration changes, see the Migration Guide.

Example

Akka

xl {
akka {
stdout-loglevel = "OFF"
loggers = ["akka.event.slf4j.Slf4jLogger"]
loglevel = "DEBUG"
logging-filter = "akka.event.slf4j.Slf4jLoggingFilter"
log-config-on-start = off
extensions = [
"com.typesafe.akka.extension.quartz.QuartzSchedulerExtension"
]
}
}

Pekko

xl {
pekko {
stdout-loglevel = "OFF"
loggers = ["org.apache.pekko.event.slf4j.Slf4jLogger"]
loglevel = "DEBUG"
logging-filter = "org.apache.pekko.event.slf4j.Slf4jLoggingFilter"
log-config-on-start = off
extensions = [
"org.apache.pekko.akka.extension.quartz.QuartzSchedulerExtension"
]
}
}

The following table lists some of the akka to pekko changes:

AkkaPekko
akkapekko
"akka.event.slf4j.Slf4jLogger""org.apache.pekko.event.slf4j.Slf4jLogger"
"akka.event.slf4j.Slf4jLoggingFilter""org.apache.pekko.event.slf4j.Slf4jLoggingFilter"
"com.typesafe.akka.extension.quartz.QuartzSchedulerExtension""org.apache.pekko.extension.quartz.QuartzSchedulerExtension"
"io.altoo.akka.serialization.kryo.KryoSerializer""io.altoo.serialization.kryo.pekko.PekkoKryoSerializer"
"akka.actor.ActorRef""org.apache.pekko.actor.ActorRef"
akka-persistencepekko-persistence
akka-persistence-jdbcpekko-persistence-jdbc
"akka.persistence.jdbc.journal.dao.legacy.ByteArrayJournalDao""org.apache.pekko.persistence.jdbc.journal.dao.legacy.ByteArrayJournalDao"
"akka.persistence.jdbc.snapshot.dao.legacy.ByteArraySnapshotDao""org.apache.pekko.persistence.jdbc.snapshot.dao.legacy.ByteArraySnapshotDao"
akka-kryo-serializationpekko-kryo-serialization
"akka.cluster.pubsub.DistributedPubSub""org.apache.pekko.cluster.pubsub.DistributedPubSub"
"akka.cluster.ClusterActorRefProvider""org.apache.pekko.cluster.ClusterActorRefProvider"

However, you can also directly extend configurations from Akka. However, as you transition to Pekko, it becomes important to identify and implement the equivalent configurations from the Pekko framework.

If you have any custom plugins available, they must be validated to ensure all the akka configurations are changed to pekko equivalents.

Important: If you are not sure about the configurations for the pekko equivalent from akka, contact Customer Support.