There is a complexity cost in implementing this structure which will be more obvious in type-declared languages than in dynamic or type-inferred languages
- in type-declared language, you must declare required interfaces (apps, ports, actors, adapters)
- you will also need an additional folder structure for the port declaration.
- for many more layers you add you have also to do mapping between different layers.