This is a hypothetical example that somewhat mimics the dependency graph of our application.
I'll give one example where things get hairy:
If I delete a folder, I need to delete the files in that folder. But if I want to download a file, it should be prefix the filename with the owner group and folder name. So in essencse, all modules need to know about each other to some extent.
I've thought of either hoisting a separate module up (e.g. DownloadModule) which would then import all other modules so that I can have a more top-down dependency tree. Or combining modules (e.g. groups+users, folders+files). Or perhaps I could do something like leverage request scoped providers to provide session data to leaf modules...for example a request scoped provider could provide the users and their group's metadata to the files services.