Diyotta components are categorized into Controller, Metadata RepositoryAgent, Broker and User Interface.

The following diagram depicts how these components are related and communicate with each other.

Controller

The Controller is Java based application and is the primary component of the Diyotta software. The Controller manages the metadata repository, client user interface modules and Agent communications. The controller captures the logical user instructions from user interface and maintains them in the metadata repository. During runtime it then converts these logic instructions stored in metadata into messages that agents can understand and perform necessary actions. It also captures operational and runtime statistics and maintains them in metadata. It is typically installed on a single server and can be setup to provide high availability capabilities.

Metadata Repository

The Metadata Repository is maintained in a relational database. It stores the logical flow of data built through user interface, process scheduling information, operational statistics and administration related metadata. The metadata repository can be hosted PostgreSQL database. Metadata is very lightweight and provides backup and restore procedures. Any sensitive information like the database and user credentials and connection information for source/target is encrypted before storing in the metadata.

Agent

The Agent is a lightweight Java based application that can be installed on Linux/Unix or windows based systems. It is responsible for picking instructions from the controller and executing those instructions on the requested system. Communication between the Controller and the Agents is encrypted and handled through a message exchange mechanism. The Agents can be logically grouped to distribute the instructions and orchestrate load balancing requirements. Number of agents and location of Agent installation depends on where the source and target data resides and the application architecture demands.

Broker

The Manager Broker is a Java based application and is bridge between Controller and Agent to pass the instructions and response between them. It creates queues to store and publish the messages between Controller and the associated Agents. Single broker is able to manage communication between a Controller and multiple agents registered to it.

User Interface

The Diyotta User interface is browser based (thin client) modules requiring no separate installation. The code development, process orchestration and monitoring, code deployment, metadata management and system/user administration happen through these client modules. The client modules support a role based access model, provides interactive development and data viewing capabilities, supports a multi team developer environment, and supports security by seamlessly integrating with SSL and SSO tools like LDAP/AD and OKTA.