We first need a protocol, but since there are quite serious ones, why not tap into what already exists ?
A permanently connected socket that works in both directions. Supporting connection and encrypted transmission for security.
This is why the choice naturally fell on the Websocket whose performance has been proven.
This is the central element of this software package, and this is where all the innovation lies.
It directly integrates a workflow system to govern the tasks to be performed. These tasks are grouped in a flowchart called "sequence". And these triggered by events like a Rest API.
Each task returns the execution status as well as the content, and the backlog if applicable.
A sequence can group together several tasks and sequences, which makes it possible to create modules that can be used in other sequences.
Three third-party applications are used to build the bus.
The Worker which executes the tasks, it is deployed on the servers executing the tasks.
The Router organizes the executions is manages the wokflow, it is deployed on one or more servers forming the bus.
The Manager is the bus builder and control HMI.
Each Worker sends a Healtcheck to the Router, this allows to inform of its state and contains all the consumption of the processes, this serves the loadbalancing.
Several architectures are possible and allow load balancing and high availability.
The configuration in different clusters is possible to increase the capacity while remaining as much available.
Manager is an HMI that allows several things.
The online construction of environments as well as the organization of tasks.
It also makes it possible to check the behavior and the execution of these.
An ftp server, included in the Router program, makes client applications available. This allows applications to be automatically installed on Workers.