# Overview

Domain-driven design (DDD) is an approach with **business domain** first philosophy. It involves breaking down complex problems into smaller domains, promoting collaboration and a shared language between domain experts and developers. The aim of DDD is to make the system easy to understand and maintain **over time**.

DDD might not be suitable for small projects as it might introduces a huge overhead at the beginning.
