Skip to content

ADR-0006 Replace Akka with Pekko

Status

Accepted

Context

On 7. September 2022 Lightbend announced a license change for the Akka project, the TL;DR being that you will need a commercial license to use future versions of Akka (2.7+) in production if you exceed a certain revenue threshold.

For now, we have staid on Akka 2.6, the current latest version that is still available under the original license. Historically Akka has been incredibly stable, and combined with our limited use of features, we did not expect this to be a problem.

However, the last update of Akka 2.6 is announced to be in September 2023.

Will critical vulnerabilities and bugs be patched in 2.6.x? Yes, critical security updates and critical bugs will be patched in Akka v2.6.x under the current Apache 2 license until September of 2023.

As a result, we will not receive further updates and we will never get support for Scala 3 for Akka.

Proposal

Apache Pekko is based on the latest version of Akka in the v2.6.x series. It is currently an incubator project in the ASF. All Akka modules currently in use in the dsp-api are already released and ported to pekko: https://mvnrepository.com/artifact/org.apache.pekko

The latest stable version 1.0.1 is compatible with Akka v2.6.x series and meant to be a plug in replacement.

Scala 3.3.0 is the minimum Scala 3 version supported. Scala 2.12 and 2.13 are still supported.

The migration guide

Our current migration to another http server implementation is currently on hold, but we might want to switch to Pekko so that we could receive security updates and bugfixes.

The proof of concept implementation has been shared in the pull request here, allowing for further testing and validation of the proposed switch to Pekko.

Decision

We replace Akka and Akka/Http with Apache Pekko.