Purported Advantages of Monolithic Repositories (Monorepos) #10
Replies: 1 comment 1 reply
-
Having worked in both monorepo & multi-repo environments, I can see the appeal of each but more often than not, teams try to build a monorepo without understanding the tooling that needs to be in place to do it properly. You mention it but the tooling that's been built to ensure monorepos only run tests (or builds, etc) for only changed packages and their efferents is quite complex. Additionally, special expertise is often required to maintain the monorepo - for instance, I worked in an org where their principled engineer's only job was to maintain their bazel monorepo. One thing I really do enjoy about monorepos however, is the tooling some monorepo frameworks (like NX) have around dependency graphing. I'm likely ignorant of other tooling that exists for a similar function but one thing I find difficult about exploring Eventide's repos is discovering which modules are used where (without looking at a gemfile). Another aspect that can be quite helpful is there's sometimes tooling for boundary enforcement of the modules within the monorepo (i.e. I can configure a library module to only be importable by specific types of modules). Regardless of the approach, the principles I care about are modularity, code shareability, and boundary enforcement. I do appreciate that the fad of monorepos has lead to orgs thinking about these things a little more carefully but am disappointed about how overcomplicated it's become and how orgs ignore tools that already exist to gain all of the benefits of a monorepo without the additional complexity. |
Beta Was this translation helpful? Give feedback.
-
https://github.com/aaronjensen/software-development/blob/master/monorepo-advantages.md
Beta Was this translation helpful? Give feedback.
All reactions