

But dependency inversion is used to allow the inner cores to use abstract interchangeable interfaces without knowing their specific implementations. In this architecture, the outer cores shall only be dependent on inner cores. Hexagonal architecture (and subsequently Onion or Clean architectures as well) use dependency inversion. There are many variants, but for example: dependency Layered architectures are intended to reduce dependencies by stacking layers: every component in one layer may depend on components of the layer below (in principle, immediately below, although "open layers" can be bypassed).

The key difference is about dependency management:
