Clean Architecture is a software architecture that decouples domain code / business logic from infrastructure logic (e.g. database or cache access) to promote modularity and automated testing of individual layers.