Architecture
Channels are provided on channel microservices, which are native microservices (so it has a standard configuration.yml file) with additional configuration in channels.yml file, where channels definitions are provided:
Lets assume that web application WebApp1 makes an reactive request to the application microservice app_A using SAMPLE channel to get the response, located on channels_1 channel microservive. It uses the following reactive communication schema, as show on the following diagram:
The whole process has the following stages:
- The
app_Amicroservice opens stream channel toSAMPLElocated onchannels_1microservice and start acting as a publisher ready to send messages (using JLRMC entry point located on Main Server). - The web application
WebApp1invokes a service on theapp_Amicroservice using JLRMC entry point on Main Server. - Just after invoking the service the
WebApp1subscribes to stream channelSAMPLElocated onchannels_1microservice. (it uses the samestreamChannelIdas microserviceapp_Awhich got during service invocation). - The microservice
app_Asends part of the response (for example: set of rows from database) as messages to channelSAMPLE. - The
WebApp1as a subscriber is getting messages from channelSAMPLEgradually and start processing them (for example: display on the screen).

