Начинает с правил, которые обязаны сохраняться после каждой транзакции
Зачем
Зачем это нужно
Делает агрегат минимальным, чтобы не блокировать лишние данные при изменении
Разделяет внутреннюю сущность и ссылку на чужой агрегат по идентификатору
Вопросы
Частые вопросы
Одна таблица равна одному агрегату?
Нет. Агрегат — граница согласованности в модели, он может храниться в нескольких таблицах или делить таблицу с другими объектами. Если следовать схеме базы буквально, теряется смысл бизнес-правил. Модель свяжет каждую границу с конкретным инвариантом, а способ хранения обсудит отдельно.
Почему большие агрегаты вредны?
Они заставляют загружать и блокировать много данных для маленького изменения, создают конфликты и делают модель тяжёлой. Внутри должны оставаться только объекты, необходимые для немедленной согласованности. Остальные правила могут выполняться процессом между агрегатами с явным промежуточным состоянием.
Как согласовать два агрегата?
Через прикладной процесс: изменить первый, записать событие или команду и затем обновить второй с защитой от повторов. Иногда допустима общая транзакция в монолите, если правило действительно атомарно. Модель объяснит цену обоих вариантов на вашем сценарии, не объявляя события обязательными всегда.
Рядом
Соседние страницы каталога
Дальше — весь каталог задач: поиск по названию, темы и фильтры.