Documentation

§How Play Deals with Akka’s License Change

You may have heard that in September 2022, Lightbend Inc. changed the Akka license model, switching from the Apache 2.0 license to the Business Source License (BSL) 1.1.
This change took effect with Akka 2.7 and Akka HTTP 10.4:

Play versions 2.x make use of Akka under the hood and also offers framework users ways to interact with Akka classes and APIs in the Play Framework documentation. Additionally, apart from the Netty backend, the Akka HTTP server backend is available in Play 2.x.

Many people were and are concerned about whether their companies have to pay license fees if Play switches to a newer Akka version that is licensed under the BSL. To address these concerns, Lightbend introduced an “Additional Use Grant” for the Play Framework. This allows the use of Akka within Play 2.x and enables Play Framework users to utilize certain Akka functionality in their source code, including production environments, without being subject to license restrictions. However, both Play Framework users and Premium Sponsors expressed concerns that these exceptions are too narrow. This means that if you use Akka in a Play 2.x application in a way that is not documented in the official Play Framework documentation, you may already be required to obtain a license. It’s quite easy to have such use cases fall outside of that exception. For instance, injecting an ActorSystem (not intended for WebSockets) would already trigger the application of the new BSL license, subjecting you to the full Akka license model.

Our top priority is to prevent Play Framework users from inadvertently falling under the BSL license scheme without their knowledge and to avoid having the Play Framework depend on non-open-source libraries. Consequently, Play 2.9+ continues to ship with Akka 2.6 and Akka HTTP 10.2 by default. If users wish to upgrade to an Akka version that employs the BSL, the decision is theirs to make, and it’s a conscious choice where users will be fully aware of the new license model. Our Play Scala or Play Java update guides provide assistance on how to make this transition.

Be aware: Akka 2.6 / Akka HTTP 10.2 reached end-of-life (EOL) in September 2023.

§Introducing Apache Pekko and Play 3.0

We released Play 3.0 in October 2023. This release replaced Akka and Akka HTTP with Pekko and Pekko HTTP: Apache Pekko represents a community fork of Akka 2.6 and Akka HTTP 10.2, developed by highly engaged and motivated individuals, some of whom were formerly part of the Lightbend Akka team. Pekko is undergoing active development. For example, Pekko HTTP has already been ported to Scala 3, a feature that is currently accessible only starting from the BSL-licensed Akka HTTP version 10.4. Also, Pekko has already fixed bugs and security vulnerabilities that have not been addressed in Akka 2.6 and Akka HTTP 10.2 anymore.

Aside from utilizing different frameworks under the hood, Play 2.9 and Play 3.0 offer the same features and receive parallel maintenance, benefiting from identical enhancements and bug fixes.

§Summary of Your Options

§End-of-life (EOL) Dates

If you are considering using Play 2.9 (with the BSL-licensed Akka and Akka HTTP), we want to inform you that the Play core team has limited resources. You might want to consider becoming a Premium sponsor to help keep the 2.x line alive. Otherwise, if interest in the 2.x line declines, we may need to discontinue it at some point.

Next: Play releases


Found an error in this documentation? The source code for this page can be found here. After reading the documentation guidelines, please feel free to contribute a pull request. Have questions or advice to share? Go to our community forums to start a conversation with the community.