I think there&#x27;s an important distinction to keep in mind between the &quot;dependency monolith&quot; versus the &quot;change-control monolith&quot;. They&#x27;re somewhat orthogonal.<p>For example, you can have a monolithic-repository (SVN, git, whatever) full of sub-directories housing mostly-independent projects. Conversely, you can have many repositories, with each containing a module that only works when present with all the rest in a monolithic-runtime.<p>Currently I&#x27;m working with some corporate internal systems that deploy new versions every couple weeks, I&#x27;m trying to work towards the former model: While we want to avoid a big-ball-of-mud, the overhead of wrangling a dozen repositories with different versions&#x2F;histories&#x2F;merge-operations seems wildly unnecessary.