All modules in the same application or different applications communicate in-memory through the framework:
If two modules are in the same application, they are in the same JVM and share their datas
If two modules are managed by the same framework instance but are on different applications, they can communicate directly though the framework or through the Network
. In that case, services between the two instances will be shared through UDP or TCP sockets.
Having a network configuration is only useful if you have several framework instances communicating through UDP or TCP. If all your modules are in one instance of the framework, you don't need a network configuration.
An input Channel is an UDP or TCP communication from another framework instance. The stream will send content from services coming from the other frame instance to this framework instance
An output Channel is an UDP or TCP communication to another framework instance. The stream will send content from services from this frame instance to the other framework instance
We will have the following architecture with our two framework instances:
You are not limited to the communication between two framework instances. You can have as many instances as you want communicating through UDP or TCP.
The sequence of communication for a Service invocation through TCP or UDP is as follows:
The provider module calls the invoke() method for the Service
The framework which controls the provider module defer the invocation to the implementation of the protocol protocol which is used for the subscriber module
The framework which controls the subscriber module receives the TCP or UDP message
The framework which controls the subscriber module notifies this module