Aggregate
Architecture 🔴 SeniorDéfinition
Groupe d'entités et de value objects traite comme une unité de cohérence transactionnelle. Toutes les modifications passent par la racine d'agrégat.
Analogie
Un bon de commande avec ses lignes : tu ne modifies jamais une ligne directement, tu passes toujours par la commande.
Exemple de code
class Order {
#items = [];
addItem(product, qty) {
this.#items.push(new OrderLine(product, qty));
this.recalculateTotal();
}
}
Cas d'usage
Garantir les invariants métier dans un périmètre transactionnel défini.
Anti-pattern
Agrégats trop gros qui verrouillent trop de données — contention en prod.