How to handle Validation in Clean Architecture?

Updated Apr 28, 2026

Short answer

Validation is split into three levels: Input Validation (Adapters), Business Logic Validation (Entities), and Use Case Validation.

Deep explanation

  1. Input Validation: Ensures the format is correct (e.g., email string looks like an email). Done in the Controller/Adapter. 2. Use Case Validation: Checks if the action can be performed in the current state. 3. Entity Validation: Core rules (e.g., 'price cannot be negative').

Real-world example

A registration form: UI checks for non-empty fields; Use Case checks if email is already taken; Entity checks if the password meets security rules.

Common mistakes

  • Doing database checks (like 'is email unique') inside a Domain Entity.

Follow-up questions

  • Should we use libraries like Joi or Zod in the Entity layer?

More Clean Architecture interview questions

View all →