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.
In all these situations, a module can act as PROVIDER module for another, CONSUMER module. IMPORTANT: These roles are only meaningful when related to each other: There is no such thing here as THE provider module or THE consumer module.
One of the modules is the main module. This is the module with the same name as the application. In the Definer of the main module it is possible to define the composition of an application.
Runtime, the modules will be merged into one application. The Rules Engine then runs this single application.