Practise vocabulary for monorepo dependency graphs: DAGs, topological order, circular dependencies, package boundaries, and workspace constraints.
0 / 5 completed
1 / 5
In a monorepo, the dependency graph is typically a ___, meaning there are no circular import chains between packages.
A Directed Acyclic Graph (DAG) has directed edges (A depends on B) with no cycles. Build tools require a DAG to determine task execution order — circular dependencies break this.
2 / 5
A ___ dependency occurs when Package A depends on Package B, and Package B also depends on Package A.
A circular dependency creates a cycle in the dependency graph, preventing topological sorting and breaking incremental build tools. Monorepo governance tools like Nx can enforce boundaries to prevent circular dependencies.
3 / 5
The ___ of a package defines which parts of its code are publicly accessible to other packages in the workspace.
The public API surface is the set of exports that other packages are allowed to import. Enforcing clear API surfaces prevents tight coupling and 'reaching into internals' across packages.
4 / 5
In Nx, ___ enforce architectural rules about which packages may import from which others.
Nx's enforced module boundaries use tags and dependency rules to restrict imports. For example, a 'feature' package may not import directly from another feature package — it must go through a 'data-access' layer.
5 / 5
Workspace tools like pnpm, Yarn, and npm workspaces use ___ protocols to link local packages without publishing to a registry.
The 'workspace:*' protocol (pnpm) or 'workspace:^' tells the package manager to resolve this dependency from the local monorepo, not from the npm registry — enabling local cross-package development.