Le Domain-Driven Design (DDD) est une approche de conception logicielle qui se concentre sur la modélisation du domaine métier pour créer des logiciels plus alignés sur les besoins et les objectifs de l'entreprise.
Le DDD met l'accent sur la collaboration entre les experts métier et les développeurs pour comprendre en profondeur le domaine, identifier les concepts clés et les règles métier, et traduire cette connaissance dans une architecture logicielle appropriée.
La focalisation sur le cœur du domaine métier, en le distinguant des aspects techniques et infrastructures.
La séparation du projet métier en domaines et sous-domaines par les acteurs métier de ce même projet afin de créer une segmentation intelligible pour tous les acteurs du projet et de représenter au mieux l’idée et la coordination des services métiers.
L’utilisation d'un langage commun ‘ubiquitus langage’ partagé entre les experts métier et les experts technique permettra de faciliter la communication et la compréhension commune des sous-domaines métiers représentés sous forme de ‘bounded contexts’ par la technique.
La modélisation des bounded contexts avec les entités, les agrégats, les valeurs objets ‘Value Object’ et les services qui les composent et reflètent leurs dépendances ****mutuelles au sein dudomaine afin de respecter les règles métier et les comportements spécifiques du domaine au cœur même de la partie technique.