> For the complete documentation index, see [llms.txt](https://note.levelcode.org/software-engineering-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://note.levelcode.org/software-engineering-notes/readme/1-overview.md).

# 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.
