I want to discuss a transformation from fat DB to microservices architecture.
A bit of history: So we have a legacy loan application system, which captures customer detail into a FAT database with some 1000+ tables. The application is doing a lot more than just just capturing loan with 100+ screens/processes built that are beyond loan capturing. Like administration, reporting, config etc.
Current State: The whole Presentation Layer, Logic Layer, DB Layer, ORM layer is part of the one project.
Current Task In Hand: The app is built in Win Forms, and my job is transform it to Modern UI as we need modern feature.
Approach: The approach I am taking is to built some Micro Services on current DB Structure. Using the same DB will allow the current application to run as it is, and we can write a new DB Layer, Logic Layer in some Micro Services. We can then write Modern User Interface (angular/react) that will consume those services. The second step then will be then stop the use of capturing operation from legacy app.
Third step is to move the specific DB tables out of the legacy databases to their own databases.
This approach seems best by keeping the current operation running as it is. Also, this approach allows us to run both applications parallel on the production environment.
Confusion: The question I have is on detailed design. I am struggling to understand the context split in Micro Services. The information in the scope of first iteration is: - Some Qualification Questions - Contact details - App requirements - Bank Details - Income details - Expense details - Previous loan information
The microservices I am thinking to have is - Application Service - Qual questions - App requirements - Previous Loan information - Income/Expense details - Demographics Information - Bank Details - Contact Details
Questions: - Does the approach sounds correct from legacy to microservices? - The microservice split. Can someone suggest if this is right?
Thanks a lot in advance. Regards Gaurav Sharma