§What’s new in Lagom 1.5?
This page highlights the new features of Lagom 1.5. If you want to learn about the changes you need to make when you migrate to Lagom 1.5, check out the Lagom 1.5 Migration Guide.
Akka Management is a suite of tools for operating Akka powered applications. Akka Management uses a dedicated HTTP port to expose a few routes allowing remote inspection of the state of the Akka Actor System.
Lagom exposes the Akka Management HTTP port out of the box. Lagom will add Health Check routes by default. You can reuse library provided health checks or plugin your own. For example, Lagom uses cluster status to determine when the node is healthy. This is called Cluster Membership Check and is provided by the Akka Cluster HTTP Management library.
A new mechanism to form and join an Akka Cluster is introduced in Lagom 1.5. Apart from the original
Manual Cluster Formation the new
Akka Cluster Bootstrap is now supported. This new mechanism is introduced with lower precedence than
Manual Cluster Formation so if you rely on the use of a list of
seed-nodes then everything will work as before. On the other hand,
Akka Cluster Bootstrap takes precedence over the
join-self cluster formation for single-node clusters. If you use single-node clusters via
join-self you will have to explicitly disable
Akka Cluster Bootstrap:
lagom.cluster.bootstrap.enabled = false
Lagom 1.5 introduces support for cross-service gRPC communication. gRPC is a high-performance, open-source universal RPC framework. The original, HTTP/JSON-based transport is not disappearing but, instead, Lagom introduces gRPC so users can choose to expose alternative transports increasing the adoption of their services. Lagom’s support for gRPC is built on top of Play-gRPC using the new
additionalRouter feature in Lagom (see below).
gRPC must run on HTTP/2. Lagom already supported HTTP/2 since it is built on top of Play. In Lagom 1.5 we’ve reviewed all the necessary pieces so HTTP/2 can also be used on dev mode. In the same spirit, it is now also possible to use encrypted (TLS) communication on dev mode.
As of Lagom 1.5 it is possible to extend the routes exposed by your service. So your service will not only expose the calls listed in
Service.Descriptor but will also serve endpoints handled by
additionalRouters. The documentation covers all the details. Additional routers make it trivial to extend a
Service.Descriptor with features natively supported by Play such as uploading a file. There is also a Lagom recipe detailing such a use case.
§Initial support for Java 11
Lagom 1.5 introduces Incubating support for Java 11, starting with a change in the use
of Java reflection in Lagom’s Java DSL that removes a known obstacle for running on Java 11. Running Lagom on
Java 11 will be limited to the use of external services that either fully support Java 11 too or run as a
separate process to the Lagom app’s Java 11 VM. For instance, Lagom dev mode may not be able to run an embedded
Cassandra node, requiring it instead be run as a separate process.