Dependency rule, что в core и что в infra, ports как интерфейсы, adapters как реализации — без overengineering.