Dependency cycle
Also known as Dependency cycle, Dependency cycle in software engineering
Definition
A circular chain in which modules or packages depend on one another.
What it means
A dependency cycle occurs when following dependency edges eventually returns to the starting component. Cycles make ownership, build ordering, testing, and replacement harder because each participant becomes coupled to the others. The cycle may exist between packages, services, layers, or even test fixtures. Breaking it often requires moving an interface or inverting a dependency.
Example
Billing imports customer data, customer imports billing status, and both import shared formatting code. Introducing a small domain interface can let the modules depend on an abstraction instead of each other.
Limitations
Some cycles are intentional at a framework boundary, and automated detection may include test-only or generated dependencies that do not affect production. Breaking a cycle without understanding runtime behavior can create a less visible coupling elsewhere.
How to use the signal
Weave can help identify whether cycle-removal work reduces review iterations or delivery waiting time. Keep the authoritative cycle report in the build or architecture-analysis pipeline, and use Weave to examine the work around it.
How this relates to Weave
Weave can help identify whether cycle-removal work reduces review iterations or delivery waiting time. Keep the authoritative cycle report in the build or architecture-analysis pipeline, and use Weave to examine the work around it.
Explore Engineering intelligence