Skip to main content

MQTT

MQTT is a lightweight messaging protocol designed for constrained devices and low-bandwidth, high-latency networks, widely used in IoT scenarios. The Ballerina ballerina/mqtt connector (v1.4.0) provides a complete MQTT v5 client for publishing and subscribing to messages, as well as a listener for event-driven message consumption, enabling seamless integration with any MQTT broker.

Key features​

  • Publish messages to MQTT topics with configurable QoS levels (0, 1, 2) and retention
  • Subscribe to one or more topics with pull-based message receiving via the Client
  • Event-driven message consumption using Listener and Service for push-based subscriptions
  • MQTT v5 support including response topics and correlation data for request-response patterns
  • Secure connections via SSL/TLS with trust store and key store configuration
  • Automatic reconnection with configurable delay for resilient connections
  • Manual acknowledgement support for fine-grained message delivery control
  • Last Will and Testament (LWT) message configuration for client disconnect notifications

Actions​

Actions are operations you invoke on an MQTT broker from your integration: publishing messages, subscribing to topics, and receiving messages. The MQTT connector exposes actions through a single client:

ClientActions
ClientPublish messages, subscribe to topics, receive messages, manage connections

See the Action Reference for the full list of operations, parameters, and sample code for each client.

Triggers​

Triggers allow your integration to react to messages arriving on MQTT topics in real time. The connector uses an mqtt:Listener that subscribes to specified topics and invokes your service callbacks automatically whenever messages are received: no polling required.

Supported trigger events:

EventCallbackDescription
Message receivedonMessageFired when a message is received on a subscribed topic.
Error occurredonErrorFired when an error occurs during message processing.
Delivery completedonCompleteFired when a message delivery is completed (acknowledgement received from broker).

See the Trigger Reference for listener configuration, service callbacks, and the event payload structure.

Documentation​

  • Setup Guide: This guide walks you through setting up an MQTT broker that the Ballerina MQTT connector will connect to.

  • Action Reference: Full reference for all clients: operations, parameters, return types, and sample code.

  • Trigger Reference: Reference for event-driven integration using the listener and service model.

  • Example: Learn how to build and configure an integration using the MQTT connector, including connection setup, operation configuration, execution flow, and event-driven trigger setup.

How to contribute​

As an open-source project, WSO2 welcomes contributions from the community.

To contribute to the code for this connector, please create a pull request in the following repository.

Check the issue tracker for open issues that interest you. We look forward to receiving your contributions.