<< Click to Display Table of Contents >> Navigation: Technical Guide > Architecture > Controller |
The DTS Controller is the central module of the system during general operation.
It is tasked with the following responsibilities:
•Registers and manages all Producer and Client sessions in the system.
•Routes requests and ensures load balancing.
•Manages data streams.
•Manages internal communications channels.
•Manages in-use projects.
•Orders boot-up and scaling of producer sessions.
•Monitors producer sessions for responsiveness.
•Manages event notifications.
•Serves as the security hub.
The Controller is the first module to be started and it's continued operation is critical to the entire system. No registration or data requests can be resolved without the Controller.
In a standard deployment, the Controller is a single instance housed inside a container.
The Controller communicates with other modules as follows:
•Internal Communications Bus (Redis): All communication with Producers, Clients and the Agent is done via this bus. Moreover, the Controller generates the specific communication channels on the ICB.
•Mongo API over TCP/IP: The Controller reads all project data from the Projects Repository using this method.
•SMTP: The Controller uses this protocol to send notifications regarding various events.