Раз тут заговорили о сущностях. Кто-нибудь сталкивался со случаем, когда есть агрегат внутри агрегата.
Допустим типичный пример с корзиной. Есть Cart, есть CartItem как его сущность, одновременно и как агрегат.
Cart защищает нас от дубликатов продуктов, т.е. если кто-то пытаются добавить существующий продукт - мы просто увеличиваем количество существующего.
так же защищает на максимальную сумму заказа и максимальное количество товаров.
CartItem представляет собой второй агрегат. Он содержит в себе сам товар и различные дополнения типа цвета, модели, чего угодно в зависимости от типа товара.
Защищает нас от того, чтобы мы не могли добавить к вещи модель от телефона допустим или добавили к вещи цвет, которого у нее нет в доступе.
Очень интересно услышать было бы мнение