Использование отдельного управления персоной в ограниченном контексте (докладчики, председатели, авторы, участники) в управлении конференцией? - PullRequest
0 голосов
/ 04 марта 2020

Мы создали приложение для планирования научной программы c конференций, включающей комнаты, сессии, лекции (устные или постерные презентации), докладчики , стулья и т. Д. ( контекст планирования программы ).

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

контекст управления бумагой является отдельным ограниченным контекстом и использует внешний API для синхронизации c данных между сторонним инструментом. Он действует как антикоррупционный уровень (ACL) для контекста планирования программы.

Концепция докладчика, председателя и автора имеет человека общего. Я хочу представить отдельный контекст управления персоналом , чтобы сократить количество дублирующихся людей и повторно использовать уникальных людей в контексте планирования программ и управления документацией с использованием уникального идентификатора человека и отображения информации через составной пользовательский интерфейс. Позже мы хотим интегрировать другой контекст регистрации конференции с тем же логом ACL c для API стороннего производителя.

Как я узнал из многих книг, блогов и c. только пользовательский контекст управления должен владеть данными человека и создавать новые экземпляры. Следствием этого будет создание нового человека для каждого автора (syn c api call) при импорте всех данных из api внешнего управления бумагой или в качестве альтернативы использование одного пакетного вызова в начале.

Является ли эта связь высокой? Должен ли я хранить дублированные личные данные авторов в контексте управления документами? Это кажется неправильным и затрудняет дедупликацию.

1 Ответ

0 голосов
/ 04 марта 2020

Возможно, вы захотите пересмотреть использование DDD. Это может быть что-то более легко решаемо без ограничений DDD, потому что похоже, что в нем много данных. Предполагая, что вы хотите сохранить DDD, вам потребуется разделить контексты. Есть несколько способов разъединить ваши контексты, но мои 2 любимых:

  1. Доменные события
  2. Rest Api

Вы можете вызвать событие домена после того, как вы извлечь каждого автора, и событие может быть обработано любым контекстом, нуждающимся в этом. Вы можете использовать остальные API, где вы можете отправлять данные об авторах, и они будут служить «Службой приложений» для вашего второго домена.

Мне кажется, я понял вашу проблему / вопрос. Поправь меня, если я не решил или обратился к чему-то совершенно другому.

...