Al seguir el diseño impulsado por dominio (DDD), ¿es correcto que un agregado raíz contenga una referencia a una entidad interna que resulta ser la entidad raíz en un agregado separado?
Creo que esto no es correcto, principalmente debido a esta regla en el libro azul :
Nada fuera del límite AGREGADO puede contener una referencia a algo dentro, excepto a la ENTIDAD raíz. La ENTIDAD raíz puede entregar referencias a las ENTIDADES internas a otros objetos, pero esos objetos pueden usarlas solo de forma transitoria y es posible que no se aferren a la referencia. La raíz puede entregar una copia de un OBJETO DE VALOR a otro objeto, y no importa lo que le pase, porque es solo un VALOR y ya no tendrá ninguna asociación con AGREGAR.
Si un agregado raíz contiene una referencia a otro agregado raíz, se viola el límite del primero y se corrompe todo el concepto de un agregado, por lo que creo que si parece que un agregado raíz necesita mantener una referencia a otro agregado raíz, entonces necesito para crear una entidad diferente , que probablemente compartirá algunos de los mismos miembros que la otra entidad raíz, pero no tendrá una identidad global, como esta otra regla en el libro establece:
Las ENTIDADES de la raíz tienen identidad global. Las ENTIDADES dentro del límite tienen identidad local, única solo dentro del AGREGADO.
Creo que este sería el camino correcto, pero dado que se siente repetitivo y redundante (cuando se saca del contexto de DDD, con POO pura), estoy pidiendo algunos comentarios.