Hi,

The key difference is in where the business-rules are implemented. With MVC, that would be in the controller. As a result, the same business rule might be implemented in multiple controllers. With clean architecture, the business rules are implemented in use-cases and in the entities. As a result, controllers don't contain much logic/code any more and the business rules aren't duplicated because they've been implemented in one central place.

Another key difference is that clean architecture is a domain-centric kind of software architecture. The database is not the most important aspect of the architecture any more. In older architecture styles, the database makes sure the business rules apply. The software is just an interface on the database. In clean architecture it's the other way around. The database is just a resource, the application is the most important part of the software architecture now. (Note that this is not always desired!)

And about "clean".. (Or dirty for that matter..) Whatever is clean or not, is just an opinion. What matters is that we make customers happy with working software.

Cheers! Thanks for your response. Hope this helps!

software developer / consultant @ vxcompany.com

software developer / consultant @ vxcompany.com