Domain-Driven Design (DDD) é uma abordagem para desenvolvimento de software que estabelece forte ligação entre implementação e modelo de negócios. DDD fornece estrutura de práticas e terminologia para tomada de decisões de design, focando em acelerar projetos de software e alinhar com domínios de negócio. DDD utiliza conceitos como modelagem orientada a domínio, arquitetura em camadas, entidades, value objects, aggregates, services e repositories.