Poly Repo or Mono Repo for Microservices

I expect to have around 10 micro-services. Maybe 5 will be core services. I am implementing most of them in Java and a few in nodejs. I could use some advice about poly repo vs. mono repo for microservices.

By mono repo/poly repo you are referring to some sort of gitops ?

My pros / cons i came across

multiple repos:
cons

  • no fast/easy way deploy the whole environment in case of DR
  • maybe harder to allow/track global configs for specific environtments

pros

  • works out of the box via the repos ci/cd pipeline most of the time
  • devs see/know the whole process

single repo (per environment in my case)
pros

  • easy DR deployments, whole environment can be deployed with a single click
  • easy migration to a new/other cluster
  • easy way to handle environment specific stuff in a single place
  • you can build workflow logic for promotion between environments dev => qa => live vie merge requests and stuff

cons

  • can be more complicated to operate
  • can be hard for the devs because some stuff is still templated in their repos and handled later
  • handling incoming commits/merges requests was a struggle for me as soon as lots of people startet contributing ( we handle around 60 - 100 services )
  • needs more templating / env-var replacements i guess

this list can easily be extended, this was just from memory :wink:
We are deploying from repo to cluster, so deletes are a problem too… with a operator in the cluster you can handle that maybe better…