NodeJS is production ready, but also have a look at Elixir (Phoenix), golang, and Crystal if a small memory footprint is really important for specific microservices. How sure are you of your strategy to convert 600k lines of code to NodeJS without bringing the 1.7GB memory footprint with it? Fair warning about rewrites, they can take unpredictably long durations of time. Is each microservice reducing the size of the grails monolith (things that must be compiled, loaded, intellisensed, etc.)? Can you build the services without making local dev a nightmare to setup? Can you convert the Grails to API only and have a NodeJS render the HTML templates via nextjs or nuxtjs? Best of luck!