Skip to content

Clean Architecture ​

Dependency rule ​

Inner layers must not import outer layers.

mermaid
flowchart TD
  Presentation --> Application
  Application --> Domain
  Infrastructure --> Domain
  Infrastructure --> Application

Layer rules ​

LayerAllowed dependenciesForbidden dependencies
DomainTypeScript standard libraryHono, DB clients, network calls, environment variables
ApplicationDomain contracts and utilitiesHTTP context, request/response objects
InfrastructureDomain interfaces, external clientsPresentation routes
PresentationApplication services, schemas, middlewareSQL queries, direct infrastructure state except app wiring

Pull request checklist ​

  • New route has schema validation.
  • New use case lives in Application, not Presentation.
  • New persistence logic implements a Domain repository contract.
  • Error shape is consistent with existing handlers.
  • Docs and route inventory are updated.