Fala mestre, beleza? Gostaria de uma palavra de sabedoria...
Estou criando uma pequena aplicação de cunho didático para fixar conceitos relacionados ao DDD visto no curso e me deparo com a seguinte situação (irei simplificar ao máximo):
Tenho duas entidades que identifiquei como raizes agregadas: O Associado e a Mensalidade. No Associado tenho os dados relativos a pessoa e na Mensalidade tenho o cpf do associado e uma lista de Pagamentos ( a mensalidade pode ser paga fatiada em vários pagamentos, apesar de estranho é assim que o domínio funciona nesse caso).
Aqui está o "problema" : Esse Associado pode estar adimplente ou inadimplente, isso depende se ele tiver alguma mensalidade em atraso. Ou seja, para mudar o status do associado eu dependo de outra raiz agregada. Utilizando um serviço eu poderia alterar o status do Associado recuperando do repositório de mensalidades as respectivas mensalidades desse associado e fazer a verificação se tem alguma em atraso.
É normal esse tipo de operação entre raizes agregadas acontecer ou é sinal que tem algo de errado no meu modelo? De inicio até pensei que mensalidade fosse parte da raiz agregada de associado, mas acho que está correto dividindo em duas raizes por que, por exemplo, se fossem apenas uma, ao excluir um associado eu perderia o registro das mensalidades pagas por ele, entre outras questões...