"Three pipelines spun up, three sets of plugins re-resolved half the internet, and one test failed because Repo C still referenced Repo B's previous artifact. I fixed it, pushed again, and watched the other two pipelines restart for moral support. By 9:30am I had three tabs of "Create Merge Request" open, three pom.xmls fighting me, and one cold coffee. We were living in a tiny-repo cul-de-sac - each house had its own rules, its own toolchain, and its own definition of " latest Jackson."."
"So we did the obvious hard thing: moved everything into a single SBT monorepo - from 12 repos totaling 40+ modules. This is the story: quick beats, real code, and a couple photos from our dependency-taming safari. Bonus: build times went from "brew a pour-over" to "take a sip." ☕️ The Neighborhood of Repos We'd optimized for "independent teams" and accidentally built a tiny-repo suburb:"
Multiple small, independent repositories caused frequent plugin re-resolution, inconsistent dependency versions, cold caches, and flaky CI pipelines with cross-repo artifact conflicts. A failed test revealed that Repo C referenced an outdated artifact from Repo B, triggering repeated pipeline restarts and manual fixes. The codebase consolidated 12 repositories and over 40 modules into a single SBT monorepo, unifying plugin versions, build tooling, and CI configuration. The consolidation reduced dependency drift, warmed caches, simplified pull request workflows, and dramatically improved build times from tens of minutes to seconds, enabling faster development and fewer integration failures.
Read at Medium
Unable to calculate read time
Collection
[
|
...
]