Como lidar com relações no DDD?
Olá pessoal, tudo bem?
Sou o Henrique, sou programador a uns 2~3 anos, comecei com Rails e a um ano atrás comecei a trabalha com node.js.
Por volta de uns 6 meses, começamos a implementar DDD no nosso projeto.
Estou confortável, e sinto que o DDD tem sido ótimo para o projeto, porém estou tendo muitas dificuldades em como trabalho as relações entre entidades.
Estou trabalhando com aggregationRoot e ValueObjects, porém sinto que não ficam boas na prática, quando realmente preciso delas no código (provavelmente por falha minha na implementação).
Vou deixar dois exemplos práticos do meu dia a dia, e gostaria de ideia de qual caminho posso seguir:
1- Tenho uma entidade "Inscrição", e essa entidade deve ter um "Pedido", nesse caso estou usando um ValueObject "InscriçãoComPedido", onde esse ValueObject, retorna dois atributos um com a inscrição e outro com o pedido.
Acho que o ValueObject não deve ser utilizado assim, porém vi um exemplo de código dessa maneira, e na época foi direto pra resolver meu problema.
2- Tenho uma entidade "Produto", e essa entidade produto tem um array de "Horários", e um array de "Informações Externas", nesse caso estou em dúvida entre um aggrgationRoot e em retornar essas informações direto no produto.
Porém são tabelas separadas no banco de dados, e fico preocupado em sempre buscar isso no banco mesmo quando não for necessário, e acabar gerando um custo muito alto.
Espero ter conseguido me expressar bem.
O que acham que pode ser o caminho para essas situações no DDD?
Obrigado =D