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