The clean architecture, term used by uncle Bob, wish to achieve the separation of responsibilities dividing the software into layers. In this direction, each internal layer cannot depends of the over layer on the outer cycle.

Here are the definition around the clean architecture:

  • Entities encapsulate Enterprise wide business rules
  • Use cases orchestrate the flow of data to and from the Entities
  • Adapters converts data from the format most convenient for the use cases and entities, to the format most convenient for some external agency such as the Database or the Web
  • Frameworks and tools such as the Database, the Web Framework, etc