No acabo de encontrar info al respecto y no me queda del todo claro cómo encaja la idea de abstraer las layers técnicas con el patrón de repositorio.
Lo que me genera fricción y creo que está mal es utilizar los repositorios como una abstracción concreta, tirando de aggregate roots y demás. Al idearlos así no puedo evitar ver cómo es un diseño que no escala y produce acoplamiento, porque dentro de un aggregate root estaría metiendo flujos de casos de usos muy dispares. Por ejemplo una aplicación de "documentos", el CRUD básico es obvio que tiene una relación prácticamente 1:1 con el aggregate root que toque, pero si además de esos documentos se generan informes al vuelo basados en dichos docs (por inventarme algo), estaría acoplando ese flujo de lectura completamente disjunto a la abstracción del repositorio del aggregate root "porque sí".
Buscando info sólo he visto básicamente "definiciones de libro de texto" que obvian el problema que me encuentro. No sé si porque lo estoy planteando muy mal o porque simplemente estoy intentando utilizar una abstracción que no corresponde (que es lo que pienso). En parte no puedo evitar pensar que a nivel conceptual es un residuo de pensar en n capas con el backend de la DB como source único de tus datos, pero como no consigo encontrar nada de información sobre el tema me da la sensación de que lo estoy abordando mal.
Alguien tiene alguna experiencia u opinión del tema?