A USoft application is composed of one or more modules. These modules are developed in separate repositories. For each module, flat files have to be generated before the interfaces defined in it can be used from other modules. At runtime, the definitions of all modules are gathered into one application.
Each time two modules are related, one acts as a PROVIDER module for the other (the CONSUMER module). The roles of provider and consumer make sense only in the context of a relationship between two related modules. In a multi-module USoft application, there is no such thing as THE provider module or THE consumer module.
However, if you have more than two modules, it is usually a good idea to designate one module as the main module. This is typically the module with the same name as the runtime application. In the Definer of this main module, define the modular composition of the application.
At runtime, the modules will be merged into a single application. The Rules Engine then runs this single application.