This article describes the architecture of the uvuyo product. It explains the different components used and what there tasks are.
Archtecture Diagram #
Uvuyo is made up of different components that run either as processes of within conainers or pods in your system.
The yellow boxes in the diagram above document the default ports used to communicate between the components.
uvuyo node #
The core component is the uvuyo node. The uvuyo node is responsible for retrieving data, processing data and sending data to the different destinations. uvuyo nodes host endpoints. The endpoints are either connector endpoint of adapter endpoints, Connector endpoints are used to send data to an uvuyo node or to collect data from a remote system for further processing while adpater endpoints are used to send data from an uvuyo node to a destination system.
Connector endpoints are short endpoints are often also called collectors. A connector endpoint is usually called connector when the source system pushes data to the uvuyo node. A connector endpoint is usually called collecter when the endpoint polls data from the source system.
The uvuyo node also hosts the event engine. The event engine is used to modify data. When an uvuyo node receives data it will first send the data to the uvuyo engine for processing after that the data is send to the assigned adapter endpoint. There it will also first be send the event engine to process the data and then the data will be wen to the destination system. Having a transformation engine at the connector as well as on the adapter side allows you to create integrations to connect one source with multiple destinations.
Multiple uvuyo nodes form an uvuyo cluster. You build uvuyo clusters to be able to horizontally scale the uvuyo installation to meet your performance and high availability requirements.
The uvuyo node also hosts the uvuyo UI. You can connect to an uvuyo node to access the uvuyo cluster from a browser to configure and manage the system as well as to setup powerful transformation rules.
Kafka #
Kafka along with zookeeper is used as the messaging system. Data retrieved from a connector endpoint is put into a kafka queue after it has been processed by the transformation engine. There it will be picked up by the appropriate adapter endpoint for further processing. Kafka itself is a scalable middleware.
Elasticsearch #
Elastiksearch is the database used with uvuyo. uvuyo stores all it’s configuration data in an elasticsearch database. The elasticsearch database like uvuyo is designed to run in an scalable high available environment.