Clean Architecture organizes code in concentric layers where dependencies point inward: Entities (business rules) → Use Cases (application logic) → Adapters (controllers, gateways) → Frameworks (web, database). The core business logic has zero dependencies on external frameworks.

How Clean Architecture Works

Your Order entity and CalculateTotal use case don't know about Express, PostgreSQL, or React. They're pure business logic. Adapters translate between the core and the outside world. Swap PostgreSQL for MongoDB, or Express for Fastify, without touching business logic.

Key Concepts

  • Dependency Rule — Dependencies point inward — inner layers don't know about outer layers
  • Entities — Core business objects and rules — independent of any framework or database
  • Use Cases — Application-specific business logic — orchestrate entities to accomplish goals
  • Adapters — Interface between core logic and external systems — controllers, repositories, presenters

Frequently Asked Questions

Is Clean Architecture overkill for small projects?

Often yes. Clean Architecture shines in complex domains with multiple interfaces (web, mobile, CLI). For simple CRUD apps, a standard framework structure (MVC) is sufficient.