Добрый день. А что делать с даннвми, которые появятся после создания агрегата? Например, создаем Company ($name, $inn, $postAddress) - каталог компаний. У каждой Company есть набор услуг Services (надо, конечно, придумать другое название), которые потом должны заполняться пользователем. Отдельно от Company услуги существовать не могут, бессмысленно, но на момент создания Company, мы еще не знаем какие услуги будут. Делать так Company ($name, $inn, $postAddres, ?Services $services = null) или при создании Company в хендлере создавать еще и отдельную сущность Services с company_id с пустыми значениями? $company = new Company (
$id = ID::next(), ...); $this->repository->add($company); $services =new Services ($id)?
а зачем агрегату компании список сервисов? У этого агрегата есть какие-то инварианты которые на это завязаны? Не делаешь ли ты слишком жирные агрегаты?
Обычно эти связи нужны только для UI. По факту же можно просто айдишку компании сервису передать и тогда все живет отдельно друг от дружки.
Ну и еще - многие инварианты не являются инвариантами которые прям нужно соблюдать "immediate".