Hexagonal Architectures
Hexagonal architecture aims to decouple business logic from other parts of the component, especially the persistence, eventing and services layers. A component, built on the ports and adapters pattern, exposes a set of ports to which one or more adapters can be added as necessary.