From the point of view of Domain-Driven Design, it doesn’t matter which architecture you choose. Domain-Driven Design is not about that, Domain-Driven Design is about language and communication.
But DDD is almost impossible without a clean project architecture, since when adding new functionality or changing an old one, you need to try to maintain flexibility and transparency of the codebase.
What does this give us in the end:
- almost all team members can read the project code;
- the statement of tasks becomes more explicit;
- business logic bugs become easier to find;
It is much easier for QA specialists to look through the code and find logical errors and bugs.
Minuses:
- high qualification of developers is required, especially at the start of the project;
- not all customers are ready to go for such costs, DDD needs to be learned by all participants in the development process.