Monorepoencourages developers to split monolith codebase into microservices and micro-apps, and manage them in single repository so that we can effortlessly keep all sub-modules in sync with consistent dependencies and versions. Developer can share code via
DDD describes an approach that bridges the gap between requirements for complex software systems on the one hand and a appropriate application design on the other. It can be subdivided into the disciplines Tactical Design and Strategic Design. The former proposes concrete concepts and patterns for an object-oriented design respective architecture. It has an opinionated view on using OOP. As an alternative, there are approaches like Functional Domain Modeling that transfer the ideas behind it into the world of functional programming.
By contrast, strategic design deals with the breakdown of a large system into individual (sub-)domains and their design. No matter if you like DDD's opinionated view or not, some ideas from Strategic Design have proven to be useful for subdividing a system into smaller, self-contained parts
Shell Library patterns with Nx and Monorepo Architectures
Bounded-Context shell library model
Figure 2. Manfred Steyer shell libraries. Made with https://creately.com
Composite shell library model
Figure 3. Booking and check-in Composite shell libraries. Made with https://creately.com