смотри. Есть стэйт всей системы. Это все юзеры, все там их посты комменты лайки хуе мое. У стэйта есть инварианты.
Есть "агрегаты" - это мы берем кусочек этого стэйта, обычно который обслуживает какое-то пиздец важное правило, true invariant. Мол нам ни при каких условиях нельзя допускать что "этот инвариант будет нарушен". Примеры таких правил - у тебя есть агрегат "наличие товара на складе" и ты через него резервируешь айтемы и он тебе гарантирует что мы не выйдем в минус.
Что бы это гарантировать доступ к агрегатам эксклюзивный - то есть блокировки там, оптимистик ли писсемистик ли - только один чел за раз может что-то менять. Последовательная работа in-memory. Тогда мы можем гарантировать атомарность.
То что ты приводишь - что мол "не может быть двух агрегатов с одим идентификатором" - это да, это круто. Но за это отвечает твой персистенс. А не аргегат.