Streams
Streams can be found next to the App Dashboard in another Tab.
The Stream-resources Consumers, Producers and Connectors serve the purpose of defining data streams. There is a hierarchy to these resources in which Connectors form the foundation for Consumers and Producers. Hence, the definition of a data stream consists either of a Connector-Consumer pair or a Connector-Producer pair. Each Consumer and each Producer runs on exactly one connector. Connectors, on the other hand, can have many consumers and producers.
- As the name suggests, Connectors take information on overall connection parameters, such as addresses and authentication details. Especially if several message streams are on a broker, server or other “data space”, Connectors contain information which can be shared by Consumers and Producers. Consequently, shared information has to be defined only once in one place.
- Consumers are used to define the input message stream of Streamsheets. They are added to the Inbox of a Streamsheet
- Producers are used to define outgoing message streams. They are referenced in stream functions like MQTT.PUBLISH().
In the following we will use MQTT as an example stream:
Connector
A Connector is always the foundation of our communication architecture. Consumer and Producer reference to a Connector and define the details. The connector itself "connects" the Streamsheet to a provider, you can choose from a preconfigured list. Once a provider is choosen, there are a variety of settings, which can be applied to define the details of your data stream.
MQTT Connector
The MQTT Connector has the following possible settings.
- Name: The Name of your Connector
- Provider: you can´t change the provider. You choose it while creating the connector.
- URL: Choose the MQTT Broker you want to use. If you want to use
our own broker, which is hosted by the Stream Sheet Server, type in
mqtt://mosquitto:1883
or use an URL to connect to an external broker. - Username & Password: If your URL needs identification, you can type in your credentials. For local usage not neccessary.
- Base Topic: The Base topic describes where the connector will be connected to.
- Retain Message: A retained message is a normal MQTT message with the retained flag set to true. The broker stores the last retained message and the corresponding QoS for that topic.
- QoS: Stands for quality of service. You have the choice between: At most once, At least once, Exactly once.
- Protocol Version: MQTT Broker can run on different protocols.
- User Properties: If the selected protocol version is "MQTT v5.0" it is possible to set user properties. These are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT packet.
Producer
A Producer is used in a Function. It directs the data stream out of the Stream Sheet. The Function together with the Producer defines where your data will be heading. A Producer is always connected to a Connector, which serves as the foundation of a Producer. Once the Connector is choosen, there are some additional settings within the Producer.
MQTT Producer
The MQTT Producer has the following possible settings:
- Name: The Name of your Producer.
- Connector: Choose the connected Connector.
- Data Format: Choose the Data Format a Producer will publish the Messages in.
- Topic: Extend the Base Topic of the Connector. The Message will be sent to the full topic branch defined through Connector, Producer and Function (ConnectorTopic/ProducerTopic/FunctionTopic).
- Clean: turn on clean session
- Static Client ID: set a static client ID if needed
Consumer
A Consumer is always connected to the Inbox of a Stream Sheet. It defines the details of the data stream comming into a Stream Sheet. A Consumer is always connected to a Connector. Once the Connector is choosen, there are some additional settings within the Consumer.
MQTT Consumer
The MQTT Consumer has the following Settings:
- Name: The Name of your Consumer.
- Data Format: Choose the Data Format you wish to accept in the Inbox.
- Static Client ID: set a static client ID if needed
- Topics: Choose one or more topics the Consumer will listen to. The topics always extend the Connector Base Topic.
- Clean: turn on clean session
- User Properties: If the selected protocol version is "MQTT v5.0" it is possible to set user properties. These are basic UTF-8 string key-value pairs that you can append to almost every type of MQTT packet.