Слои: entities (доменные сущности), use cases (бизнес-логика), interface adapters (handlers, репозитории), frameworks (HTTP, БД). Зависимости направлены внутрь: use case не зависит от HTTP и БД; адаптеры реализуют интерфейсы, определенные в use case. В Go: пакет domain (сущности и интерфейсы use case), пакет usecase, пакеты delivery (http), repository (postgres). Внедрение через конструктор.
// domain/repository.go
type UserRepository interface { Save(ctx context.Context, u *User) error }
// usecase/user.go
type Service struct { repo UserRepository }
// delivery/http/handler.go
type Handler struct { svc *usecase.Service }