Sign up for your FREE personalized newsletter featuring insights, trends, and news for America's Active Baby Boomers

Newsletter
New

Tips On A Migration From Spring Boot / Kotlin To Node For A Web App

Card image cap

Hi all,

I'm helping out on a project where the team is looking to migrate from an existing Spring Boot / Kotlin backend to a Node.js backend. New to a migration of a codebase, and have mostly worked on simpler Node.js applications. I'm working with a team of other engineers, and none have particularly strong organizational/communication strengths, so think I can help us all out by providing some structure to our approach.

Was hoping to get some tips on how we can speed up / de-risk / chunk the migration. Best practices for scale are a little less important in terms of scalability, as the app doesn't have tons of users yet.

Broad details on the rest of the stack: Vue.js for the front end, AWS RDS Postgres for the DB, AWS EKS and Github Actions for the Build.

The web app is not too data intensive, mostly a place where users create profiles, list details about themselves and follow each other (a fairly boring, businessy social media of sorts)

Some details on the architecture below (disclaimer, used AI to help distill):

Current Architecture

A multi-module Kotlin/Spring Boot application with:

  • API Module: Controllers, security, and services
  • Common Module: Domain models and data access

Key Components

  • Authentication: JWT-based with additional custom filters
  • Data Access: JPA repositories
  • API Design: REST controllers
  • Realtime Features: WebSocket for eventual chat based functionality between users

Core Design Patterns

  • MVC architecture, although the Views are fairly lightweight
  • Repository pattern
  • Service layer handles a lot of the business logic
  • Filter chain for request processing
  • Dependency injection throughout

From reading online / trying to use AI preliminarily, seems like these will be some technical challenges for Migration so far. Would be great to understand others, and some advice on how to try to ensure things go smoothly:

  1. Replacing Spring Security with Node.js equivalent / Maintaining the JWT authentication flow
  2. Converting Kotlin coroutines to JavaScript async/await
  3. Reimplementing transaction boundaries

One basic detail we're unsure about is how we can build/test iteratively to make sure components we migrate would work. Would be great to not have to wait until the whole code base is migrated, while also not investing so much in setting interoperability between Java/Node or figuring out too much about parallel deployments with AWS.

Anything on how we can speed up / de-risk / chunk the migration is helpful!

Thanks in advance for giving a look!

submitted by /u/Several-Ad8667
[link] [comments]