Главная · Каталог задач · Агрегаты и границы DDD

Готовый сценарий

Агрегаты и границы DDD

Агрегат нужен не для красивой диаграммы, а чтобы защитить правило в одной транзакции. Модель возьмёт ваши инварианты — например, сумма строк заказа равна итогу — и определит минимальный набор объектов, который меняется вместе. Ссылки наружу останутся идентификаторами, а не графом всей базы в памяти.

Попробуйте прямо здесь Отвечает Gemma 3 12B — модель подобрал сервис

Открыть в полном чате

  • Доступ без VPN
  • Русский интерфейс
  • Оплата рублями по факту

Зачем

Зачем это нужно

01

Начинает с правил, которые обязаны сохраняться после каждой транзакции

02

Делает агрегат минимальным, чтобы не блокировать лишние данные при изменении

03

Разделяет внутреннюю сущность и ссылку на чужой агрегат по идентификатору

Вопросы

Частые вопросы

Одна таблица равна одному агрегату?

Нет. Агрегат — граница согласованности в модели, он может храниться в нескольких таблицах или делить таблицу с другими объектами. Если следовать схеме базы буквально, теряется смысл бизнес-правил. Модель свяжет каждую границу с конкретным инвариантом, а способ хранения обсудит отдельно.

Почему большие агрегаты вредны?

Они заставляют загружать и блокировать много данных для маленького изменения, создают конфликты и делают модель тяжёлой. Внутри должны оставаться только объекты, необходимые для немедленной согласованности. Остальные правила могут выполняться процессом между агрегатами с явным промежуточным состоянием.

Как согласовать два агрегата?

Через прикладной процесс: изменить первый, записать событие или команду и затем обновить второй с защитой от повторов. Иногда допустима общая транзакция в монолите, если правило действительно атомарно. Модель объяснит цену обоих вариантов на вашем сценарии, не объявляя события обязательными всегда.

Рядом

Дальше — весь каталог задач: поиск по названию, темы и фильтры.

Нужно больше

Весь Енотик — в одном окне

Полный чат: история, вложения, базы знаний, картинки и видео. Один баланс на все модели, оплата рублями по факту.