В моей системе используется язык «Контакта», который является своего рода «пользователем-призраком», о котором у нас есть некоторая информация - его правила проверки тонкие, а его состояние - в основном контактная информация. У нас также есть понятие «Пользователь», который является полностью проверенным и зарегистрированным пользователем. Думайте о «Пользователе» как о конкретном «Контакте».
Жизненный цикл, который мы пытаемся уловить, заключается в том, что «Контакт» будет заменен «Пользователем», как только кто-то зарегистрируется с информацией этого «Контакта».
У нас есть и другие совокупные корни в системе, которые ссылаются на «ContactId», указывающий на UUID «Contact». Когда этот «Контакт» регистрируется, мы хотели бы использовать новую концепцию «Пользователя» для представления их в домене, и «Пользователь» теперь имеет свой собственный UUID «UserID».
- Как мы можем сохранить отношения, которые все еще ссылаются на «Контакт» через ContactID, чтобы теперь ссылаться на «Пользователя» через UserID?
- Есть ли фундаментальная проблема с попыткой перевести мой агрегат в другой?
- Если да, то как мне смоделировать этот конкретный жизненный цикл «Контакт» -> «Зарегистрированный пользователь»?
- Если ответ состоит в том, чтобы объединить две идеи в единый совокупный корень, как я могу поддерживать действительность объектов моего домена в любое время, несмотря на то, что «Пользователь» недействителен до тех пор, пока этот «Контакт» не зарегистрируется?
В качестве примечания, мы используем CQRS / ES для общей архитектуры.
Спасибо!
Contact
в отношенияUser
? Почему это должно волновать направляющую организацию? У вас есть пример использования для этого? - person guillaume31   schedule 29.03.2016