MQTT Producer
The MQTT Producer step allows you to publish messages in near-real-time to an MQTT broker. Within a transformation, the MQTT Producer step publishes a stream of records to one MQTT topic.
For more information about the MQTT protocol, see: https://www.hivemq.com/mqtt/
General
Enter the following information in the transformation step name field.
- Step name: Specifies the unique name of the transformation on the canvas. You can customize the name or leave MQTT Producer as the default.
Options
The MQTT Producer step includes several tabs. Each tab is described below.
Setup tab
In the Setup tab, define the connection to the MQTT server, the topics for publishing, Quality of Service level, and the Message field:
Option | Description |
Connection | Specify the address of the MQTT server to which this step will connect for sending or receiving messages. |
Client ID | Specify a unique ID for the MQTT client. The MQTT server uses this Client ID to recognize each distinct client and that client's current state. |
Topic |
Specify the Topic name using one of the following methods:
|
Quality of Service (QoS) |
Quality of Service (QoS) is a level of guarantee for message delivery. Select one of the following options.
|
Message Field | Select the individual record contained in a topic that you want to send. |
Security tab

The security tab includes the following options:
Option | Description |
Username | Specify the user name required to access the MQTT server. |
Password | Specify the password associated with the Username. |
Use secure protocol |
Select this option if you want to define SSL properties for the connection. This security protocol setting is used only on Kettle. It is not used on AEL Spark. |
SSL Properties |
|
Options tab

The Options tab includes the following MQTT-specific parameters:
Parameter | Description |
Keep Alive Interval | Specify a maximum number of interval seconds that is permitted to elapse between the point at which the PDI client finishes transmitting one Control Packet and the point it starts sending the next. |
Max Inflight | Specify a number for the maximum number of messages to have in process at any given time. |
Connection Timeout | Specify the time, in seconds, to disconnect if a message is not received. |
Clean Session |
Specify if the broker will store or purge messages for a session. Select one of the following.
|
Storage Level |
Indicates if messages are stored in memory or on disk.
This setting is used only on Kettle. It is not used on AEL Spark, which uses its own configuration. |
Server URIs | Specify the MQTT server’s universal resource identifier (URI). |
MQTT Version | Specify the MQTT protocol version that this step is connecting to. |
Automatic Reconnect |
Enables the client to attempt an automatic re-connect to the server if it becomes disconnected. Select True or False:
|
Metadata injection support
All fields of this step support metadata injection. You can use this step with ETL metadata injection to pass metadata to your transformation at runtime.