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