Technipelago Blog Stuff that we learned...
The road to Micronaut
I wanted to evaluate the new Micronaut framework and in the middle of September 2018 I made a bold decision...
During 3 months this summer I developed a proof-of-concept backoffice system with 10 microservices in Spring Cloud and a Vue.js front-end. It was a struggle to get all parts working. I used latest milestone relases of Spring components and that did impose some limitations and pain. I have 3-4 years experience with Spring Cloud but I had to cheat and create hacks and workarounds for things that didn't work so well. I'm sure all these issues can be fixed given enough time, education and when using release builds, but I had a demo deadline to meet.
I finished on time and the demo went great, but if you looked behind the scenes it was not pretty. :)
After the summer I wanted to evaluate the new Micronaut framework and in the middle of September I made a bold decision. Migrate all 10 services to Micronaut to get a feeling for the framework!
Micronaut 1.0.0 was not yet released when I started the migration project. I think I started on 1.0.0.M4, upgraded to RC1, RC2 and sometimes I was running on latest commits on the master branch. It was a bumpy road but I managed to solve all issues (the right way, not workarounds) and move on, much thanks to the amazing Micronaut team at OCI. They answered my questions on Gitter, I created issues on Github and they fixed them in no time. After 3 weeks all 10 services were up and running.
Things that I was struggling with in Spring Cloud, like Security, WebSockets, Apache Kafka, etc. was easy to get going in Micronaut. The most problematic part was service discovery with Eureka. But after Graeme Rocher fixed the last bug it all started to work like a dream.
Service Discovery, Security, WebSockets and Kafka are easy to configure (very little code) and testing HTTP endpoints with security enabled are fun again with Micronaut's declarative HTTP clients.
I'm absolutely sure that the Micronaut framework will have a GR8 future!
(a more detailed blog post will follow where I share the experiences gathered during this migration project)