DEV Community

Cover image for How Your Company moving from using the existing (legacy) application architecture to a new one?

How Your Company moving from using the existing (legacy) application architecture to a new one?

Aditya Kresna
・1 min read

Have you thinking about your current running system is needed to rebuild? The same situation is happen to us, as the current application is majority supporting almost all of our business process.

Short Story

The story began when our system is highly developed to support our customers in a short period of time. This kind of process unfortunately ignores the process of designing scalable application, actually we design it to scale, but, at that time the insights are very limited to us to make our system is stable longer.

Our system is based on RESTful and divided into more than 5 microservices, which each microservices are tightly tied to one service that act like an API Gateway.

The "API Gateway" service is not like another(Kong, Ambassador, etc), it is a NodeJs application which also holds a logic composition when the "request" is coming and pointed to another service for the specific operation. It also responsible for Authentication with the outside world which adds more complexity when we try to excluding it from the service.

Need Help!

  1. Is that situation ever happened to you? if yes, how to deal with that?
  2. Is there any best practice about step-by-step to move seamlessly into a brand new system?
  3. Because we use Functional paradigm, please comment if you do know about refactoring recipes in functional programming, any experience or advice will be appreciated.
  4. How to make a decoupled microservices, when between microservices needed an authorization and (eventually) depends on one Auth (like) service to verify the request?

Discussion (3)

rslak profile image

Where is the current deployment (in cloud or kubernetes) and what is the tech stack used? Depending on this, I can advice

slaveofcode profile image
Aditya Kresna Author

The "API Gateway" is on AWS, the rest already on Kubernetes. The tech stack as I described on the article, it is NodeJs.

rslak profile image

For decoupling your services you can use AWS step functions or istio(if you would like service to service communication via native cloud route)