The Philly JUG had another successful meetup, this time about Lightbend’s new open source project Lagom. It was a timely presentation, as Lagom 1.0 had just been released the day before (on July 26, 2016).
The Lagom website has much better descriptions of what it’s all about, but I’ll give you my first impressions.
Lagom is a microservices framework which is designed from the ground up to be reactive, resilient, and elastic. Event Sourcing and CQRS are implemented as first class citizens, and all calls are asynchronous with first class support for streaming of request and response. It’s easy to see that Lagom is positioned as a high-throughput framework.
Besides the design for high performance, the big advantages I saw were that service registration and location are built in. The framework is designed to work with sets of services at once, which is a plus when dealing with a large project composed of many services.
The downside is that this framework is very new and there is a lot of work to be done. For instance, it only builds with SBT (not Maven or Gradle), and there is no security model.
One thing that is confusing at first is that it builds with SBT and runs with Akka and Play, implying this is a Scala framework. But the only way to use it is via a Java API, and if you dig in you’ll find there is no Scala API. So where is the Scala API? A Scala enthusiast might say “Where is it indeed?!?” A quick conversation with the Lagom presenters revealed that – to the chagrin of the Scala base – Lightbend has decided that it wants to be involved in the enterprise space, and the opportunity for adoption there lies with producing a Java API first. So although that’s good news for Java developers, Scala developers will unfortunately have to wait.
Give Lagom a try, and let me know what you think in the comments!