Scaling up into the Cloud — Agorapulse Micronaut Journey

Agorapulse’s start-up success was built upon Grails framework that allowed us to focus on our users and develop new features rapidly even with only a handful of developers. Sadly, with the rise of single page applications and cloud computing we reached the limits of the framework. The start up times became too long and the rapid application development features were less important as the frontend had to be developed separately anyway.

In early 2018, we started experimenting with the brand new AWS Lambda API Gateway service. The serverless was emerging but there was no Java framework capable of starting in a milliseconds so we stepped back to poor-man’s dependency injection - hand wiring the services by constructors in AWS Lambda handlers.

In March 2018, I was attending the Greach conference in Madrid, where the new framework called Micronaut was introduced by the creators of Grails, including the founder Graeme Rocher. It provided the base for everything we needed for our serverless API project and soon after, at the end of June 2018, we released our first functions based on Micronaut 1.0.0.M1.

Micronaut: The Missing Part

In July 2019, Grails 4 was released with out-of-the-box integration with Micronaut. This sparkled the new wave of innovations. Agorapulse was always giving back to the community and we already have many Grails plugins open-sourced. All of these were migrated to Micronaut and created the base of our Micronaut OSS libraries, probably the largest collection of Micronaut 3rd-party libraries out there. The same process was happening behind the scenes. Many libraries were extracted from our applications and logic was shared between servers and serverless applications.

In the middle of 2021, the final decision was made to no longer invest into our Grails applications. I have written a series of articles that can help anyone perform the same migration as we were planning. Whereas all new development happened in Micronaut, it took yet another four years to finally decommission the last Grails application.

Goodbye Grails, Hello Micronaut #0: Introduction

Micronaut fully met our expectations. The framework is still very active, and many team members found its new home in Oracle Labs GraalVM Team. This sends a strong message that the development will not be discontinued in the near future. There is also a friendly, vibrant community on Discord. Although new competitors such as Quarkus emerged over the years and Spring Framework is steadily working on removing all the bottlenecks that led to Micronaut’s creation, Micronaut remains our number one framework as it doesn’t force us to learn new libraries as Quarkus does, and the performance improvements generally do not require additional work like Spring Ahead-of-Time optimizations.