I'm creating an application that is composed using different modules (core, course, grades, news). I'm using clean architecture for the different modules but I'm stuck trying to pass data from one module to another module.
The idea is plug into one application (app1) several modules or use them in another application (app2) and has modules very decoupled each other. Modules should depend of core module only and maybe to another module too.
I was thinking in use dependency inversion to receive data. For example grades module need a course object, so, grades module is expecting a course interface. This interface is created in core module (grades and course know it) and course module has the implementation. I want to know if is a good approach? What do you suggest?