В моем домене есть субъект, которому нужно отслеживать его статус. И у меня есть обработчик для этого нужно. Этот статус похож на InProgress
, Completed
или Deleted
. И я использую CosmosDb, SQL API для хранения этих данных.
Внутри CosmosDb я создал контейнер для этих созданных сущностей и другой контейнер для его статуса. Поэтому внутри кода у меня есть два репозитория для этих двух контейнеров.
internal interface EntityRepository
{
Task AddAsync(Entity entity);
}
internal interface EntityStatusRepository
{
Task AddAsync(EntityStatus entityStatus);
}
И для каждого репозитория я создал один сервис
public interface EnityService
{
Task AddAsync(Entity entity);
}
public interface EntityStatusService
{
Task AddStatusAsync(EntityStatus entityStatus)
}
Эти сервисы были представлены как открытые интерфейсы для обработчика, а не репозиториев.
СейчасМне действительно интересно
Основываясь на DDD и имея сущность и ее статус, я должен создать два отдельных репозитория или они должны быть как один репозиторий, так как они представляют собой один контекст?
Нужно ли раскрывать сущность и ее статус с помощью одной службы?
Интересно, есть ли у кого-нибудь предложение или даже лучшее решение?