I'm trying to use the Repository pattern for my current project and i'm currently in the process of trying to model the domain and find the aggregate roots.
I've read of the 'Cascading Delete' rule which states that if it doesn't make sense to delete a member when the root is deleted then it shouldn't be part of the root.
I'll use a Police incident as an eample :-
Incident (Aggregate root) - This could contain investigating officers, notes made by each officer. It could also contain suspects with a list of dates that were interviewed. Was CCTV footage obtained for the incident? A log of each time the CCTV was viewed and by who? Were copies made of the CCTV for evidence/court etc
It seems like the IncidentAggregate could become huge since it appears that everything hangs on that incident.
My question is twofold, how much should the aggregate root manage and, are roots within roots a good idea?
This may not be a particularly good example since you'd probably never remove something like a police incident but i hope it describes my question better.