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_A
microservice opens stream channel toSAMPLE
located onchannels_1
microservice and start acting as a publisher ready to send messages (using JLRMC entry point located on Main Server). - The web application
WebApp1
invokes a service on theapp_A
microservice using JLRMC entry point on Main Server. - Just after invoking the service the
WebApp1
subscribes to stream channelSAMPLE
located onchannels_1
microservice. (it uses the samestreamChannelId
as microserviceapp_A
which got during service invocation). - The microservice
app_A
sends part of the response (for example: set of rows from database) as messages to channelSAMPLE
. - The
WebApp1
as a subscriber is getting messages from channelSAMPLE
gradually and start processing them (for example: display on the screen).