Mono repo vs Multi-repo structure for Microservices what to choose?
Before providing any comments on it, Let me ask a few questions, It’s like :
- On which stage of the project it comes like to think about Mono repo vs Multi Repo?
- Whats the project in nature ?, Its a full-fledged business solution to plan to as an incremental development of the previous version? Or Its a Proof of concept on an idea just born ?
- What is the complexity of the project ?, A simple Income tax calculator or A detailed asset management solution for the shipping industry?
and so on
It’s just to know like in General what someone experienced solution maker has to say about it?
Considering a case when a completely new project has started for a medium complex business solution e.g. An Asset Management Of a Restaurant – that consist 8 to 12 microservices like Account Management, User Management, Customer Management, Billing Management, Notifications and so on..
I would suggest go for Mono Repo, Design the solution, and start coding on it, based on best experiences and work styles fit this project as you are the decision maker,
But very important do refactoring every week or every sprint or every day, See how it fits the way you feel to manage the repo as per the vision and use planned on this project?
It all depends, It like you may need to a separate a service e.g. Billing Service from rest of the framework
Maybe Clubbed together Billing Service and Customer Service together, so maintaining two repo like General Services (includes user, account, profile etc services) and Core Services( e.g. customer and billing), as it all depends how logical structure in place
So no straight forward answer, It all depends, What fits the project as project development go.
I have worked in projects where we had multiple repos, but on that, we only separated a few services from the rest of others
On another case, worked on a project where there was a separate repo for each service.