One key technical question we will need to ask is how exactly should we break the monolithic application's code? Here are some important points to keep in mind:
- If an application is well-written, there will be clean and obvious separations between the different classes or software modules. This makes cutting up the code an easier task.
- On the other hand, if there are no clean separations in the code, we'll need to do some refactoring to the existing code before we can start moving pieces of code to new microservices.
- It is typically preferred not to add new code or features to the monolithic application without trying to separate the new feature into a new microservice.