Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reviving Lagom in the context of Pekko, Play 3.0, Scala 3 #3366

Open
flexshape-laurynas opened this issue May 4, 2024 · 0 comments
Open

Comments

@flexshape-laurynas
Copy link

Dear Lagom (ex-)Developers, Maintainers, Users, and Fans,

IMHO, Lagom is (was) a great opinionated framework, which gave good fundamental structure and best practices to how advanced Akka- and Play-based micro-services are structured and developed. It also provided a decent development environment with a service locator, registry/router, etc. which made it convenient developing Scala micro-services - a combination which is currently not available in any other non-commercial Scala-based frameworks available today. It is unfortunate that Lightbend has abandoned this project and now Lagom is approaching EOL by July 1, 2024.

While Lightbend suggest moving away from Lagom to Akka or Kalix (both under commercial licenses now), I can still see advantages of Lagom offering developer-friendly Scala-based micro-service environment that allows a developer focusing on business logic, instead of hard-wiring and configuring complex micro-service run times every time. Of course, for making it actual, Lagom needs to undergo significant refinement and upgrade:

  • Be adapted to latest developments and trends (in the Scala world), including:
    1. Adding support for Scala 3
    2. Using Pekko instead of Akka
    3. Using Play 3.0
    4. Add support for JDK 17+
    5. Add support for Sbt 1.9+
    6. Using gRPC as for inter micro-service communication, by default.
  • [Optional] Be focused Scala-only framework, dropping Java DSL support;
  • Remain under a permissive free software license like Apache v2;

Some of the above work (incl., items 1-5) our company has already accomplished, after we forked Lagom and made it our internal project. The most difficulty part was the migration of Lagom macros to Scala 3, which we succeeded. We had to do this work, because some part of our solution still depends on Lagom and we were hesitant migrating away from it, since we'd have to loose all of Lagom's benefits (structured micro-services, dev environment, etc.).

We're curious whether the community still has any interest in reviving the Lagom framework in some form. If there still is a (significant) interest it that, our company will consider sharing our above-mentioned efforts to help reviving Lagom; else we will continue stripping down the remains of Lagom and specializing to our-specific case, making it full internal specialized project.

Kind Regards,
Laurynas Siksnys,
FlexShape Aps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

1 participant