# The Software Components Dependency Rule
## Metadata
**Status**:: #x
**Zettel**:: #zettel/fleeting
**Created**:: [[2025-12-18]]
**Reference**:: [[Robert C. Martin - Clean Architecture A Craftsman's Guide to Software Structure and Design, First Edition (Highlights)]]
**Topic**:: [[♯ Software Engineering]]
## Synopsis
- High-level policies should not depend on low-level details.
- High-level policies = business logic
- Low-level details = input/output/framework/driver
- Inverse dependency by define interfaces in high-level policies and let low-level components to implement those interfaces.