Я предполагаю, что AuthService находится в своем назначенном ограниченном контексте для аутентификации, и Учетные записи также находятся в том же ограниченном контексте.
Вот мои ответы:
Это анти-шаблон в DDD для хранения AccountId в сущности «Ученик и учитель»?
Вы можете хранить AccountId в сущностях «Ученик и учитель».Это не анти-паттерн, а скорее противоположность - это то, как разные агрегаты ссылаются друг на друга, сохраняя идентификатор других агрегатов.
Если это не анти-паттерн в какой моментМожно ли собирать информацию об учетной записи учащегося с помощью AccountId, в репозитории или в контроллере API, или мы должны использовать вызовы RPC / API.
Я не понимаю, какой именно репозиторий вы имеете в виду, дляАккаунт, студент или учитель?Каждый корень агрегата имеет свой собственный репозиторий, и этот репозиторий отвечает только за хранение этих агрегатов.Он не знает и не запрашивает другие агрегаты.Если вам нужно запросить другие ограниченные контексты, сделайте это на уровне приложения - если операция, которая делает это, не относится к области.Если это проблема домена, то сделайте это на уровне домена, представив другой ограниченный контекст как службу домена (интерфейс).RPC / API - это деталь реализации вызовов взаимосвязанного контекста, и вы можете использовать любой способ для запроса другого ограниченного контекста, если детали реализации не проникают в доменные уровни.
Можно ли копировать данные, необходимые из учетной записи, в организацию учащегося или учителя?
Это тоже нормально.Вы делаете это для достижения большей доступности по цене возможной согласованности.В таком случае ограниченный контекст / сущность, которая содержит информацию от другого, подтверждает, что копия данных может устареть, но это приемлемо с точки зрения бизнеса.
Дайте мне знать, если возникнут вопросы.Я долгое время практикующий DDD.