Domain Service
Architecture 🟡 MidDéfinition
Service stateless qui encapsulé une logique métier qui ne rentre naturellement dans aucune entité ou value object. Opéré sur plusieurs agrégats.
Analogie
Un notaire : il ne possède rien mais orchestre une transaction entre acheteur et vendeur.
Exemple de code
class TransferService {
transfer(from: Account, to: Account, amount: Money) {
from.debit(amount);
to.credit(amount);
}
}
Cas d'usage
Opérations métier impliquant plusieurs agrégats qui ne peuvent pas être attribuées a un seul.
Anti-pattern
Termes liés
En entretien
Quand utiliser un Domain Service plutôt qu'une méthode sur une entité ?
Quand une logique métier ne rentre naturellement dans aucune entité ou value object et opère sur plusieurs agrégats, comme un notaire qui orchestre une transaction entre acheteur et vendeur sans rien posséder lui-même.
Quel est le piège du "domain service anémique" ?
Un domain service qui ne fait que déléguer au repository, sans porter de véritable logique métier.
Fiche mise à jour le 2026-09-27