Units are the main elements of Devo Flow, and can be classified under three general groups:
These units get input data from different repositories, servers, etc. or generate events on their own. For example, you can use the DevoSource unit to read events from a Devo query or generate events automatically with a specific frequency using the Generator unit.
These units transform the events sent by the source element. For example, you can transform an event that contains a list into a sequence of its different elements using the Detacher unit, or parse a properly formated JSON using the JsonParser unit.
These units send output events to different external repositories, sinks, etc. For example, you can send your events to a Slack channel using the SlackSink unit, or store them in a Neo4j database using the Neo4jSink unit.
The panel at the left area of Devo Flow groups events under more specific categories according to the type of function they perform. The following sections include all the available units in the tool and describe what they do and their available input/output ports.
They are categorized into these groups according to their functionality:
|Control||Control units are used to store input events under controlled settings, such as time delays, before firing them out.|
|Core||Core units transform core values of input events to leave only events that satisfy a given predicate, such as filtering or merging.|
|Data||Data units keep events in memory while performing a sequence of actions to enrich or update the data before firing them through the output ports.|
|DB||Database (DB) units read events from or stores events in supported databases.|
|Devo||Devo units send or receive events based on specific queries ran on Devo. The queries can be used in Devo or compatible services.|
|Event||Event units process events according to configured criteria, such as to transform or fire them.|
|HTTP||HTTP units send HTTP requests to a configurable endpoint.|
|Log||Log units send messages via supported logging systems.|
|MQ||MQ units convert events to records that can be sent to or received from message broker queues.|
|Text||Text units parse, query, or format a text using its supported program.|
|Sink||Sink units send events to a configurable channel, such as email or a messaging application.|
|Window||Window units keep events in memory, waiting for a specified condition to be met before sending them through the output ports.|