DEV Community

Discussion on: Golang, Microservices, and Monorepo

Collapse
lucaswxp profile image
Lucas Pelegrino

The only problem I have with this, and that perhaps there's a solution, is automatic deployment.

If you change just one micro-service, both will be rolled out a update that way, making both services unavailable and destroying one of the points of having micro-service architecture: independent deployment across micro-services.

I much prefer monorepo, but that's a problem I didn't find a solution yet.

Collapse
bastianrob profile image
Robin Author

Well CICD will always be a problem with a monorepo.
I previously use file change detection to check which services got changes but it's not a perfect solution.

Collapse
lucaswxp profile image
Lucas Pelegrino

Yeah, Uber solved the issue I mentioned with a custom tool. They said they were going to open source it, but that was a couple years ago....

Thread Thread
rmelo profile image
Rodrigo Melo

@lucaswxp @bastianrob I started a Monorepo with some scripts that check for changes in my well defined structure and it works well for me at this moment. It's not efficient as Bazel is but we're a health tech startup with small codebase, this year we will migrate to use Bazel which is used by Uber's team to improve our build time and do this job of check deps changes.