Component technologies

ยงComponent technologies

As a complete microservices platform, Lagom assembles a collection of technologies and adds value on top of them. Some of the libraries, tools, and servers that Lagom uses and supports were developed at Lightbend, others are third-party and open-source. As you develop with Lagom, you can also take advantage of these technologies:

  • Play Framework — Lagom is implemented on top of Play Framework, Lightbend’s web framework. This is an implementation detail that does not directly concern you when developing simple microservices. However, advanced users can call some Play APIs directly. If you have an existing Play Framework application to which you want to add microservices, Lagom provides support for that use case.

  • Akka — Lagom Persistence, Publish-Subscribe, and Cluster are implemented on top of Akka, Lightbend’s toolkit for building concurrent, distributed, and resilient message-driven applications. (This is an implementation detail that does not directly concern you when developing simple microservices. However, you can call also Akka APIs directly.)

  • To scale your microservices out across multiple servers, Lagom provides clustering via Akka Cluster.

  • As described in Implementing services, A Lagom service may be “simple” or “streamed”. Streaming, asynchronous Lagom services are built on top of Akka Streams.
  • Akka Split Brain Resolver handles network failures and system crashes.
  • Akka Coordination Lease is a distributed lock. You can, for example, use the Kubernetes Lease for enhanced failure-recovery for Lagom and Akka Cluster apps deployed in Kubernetes.
  • Lightbend Platform subscribers can use additional components to operationalize and production-harden their systems.

  • Lightbend Telemetry and Lightbend Console give you visibility into system health, availability and performance.

  • See Lightbend Platform for more details.

  • Cassandra — By default, Lagom microservices that need to persist data use the Cassandra instance that runs as part of the development environment. You can also use an existing Cassandra Server database or another type of database. See Managing data persistence for more information.

  • Guice — Like Play, Lagom uses Guice for dependency injection.

  • SLF4J & Logback — Lagom uses SLF4J for logging, backed by Logback as its default logging engine. See Logging for more information.

  • Typesafe Config Library — Lagom and many of its component technologies are configured using the Typesafe Config library. The configuration file format is HOCON, a powerful and expressive superset of JSON.

  • Serialization — Lagom’s recommended serialization format is JSON. The default engine used for JSON serialization and deserialization used for Java is Jackson and for Scala, Play JSON. Other serialization formats are also supported.

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.