Skip to end of metadata
Go to start of metadata


MQTT Store and Forward allows data to be buffered locally at a client when connections are down to the MQTT Server infrastructure and deliver that data when the connection is restored. This feature is critical in most applications because if we lose connection to the MQTT Server we will lose data if it is not buffered locally.

When Store and Forward is enabled and the edge node detects a disconnect to the MQTT Server, tags will be stored locally in a history store. When the edge node can reconnect to the MQTT Server, it will publish any stored tags. The rate at which these stored tags are flushed from the history store is configurable to prevent any delays in the delivery of live data.

When used in connection with a Primary Host ID we can also ensure data is also buffered locally in the event the main application is offline. The primary host ID identifies the main application that is receiving the MQTT data from the MQTT Server and is used by the edge node to subscribe to state notifications for that application.

If no primary host ID is configured and the main application is not connected to the MQTT Server, new tags from the edge node will be lost.

If the primary host ID is configured and there is a change to the connection status with the main application, the MQTT Server will publish a state message to clients which have subscribed to this state message. When connected the status will be ONLINE and when disconnected the status will be OFFLINE.

If the edge node is notified that the state of the primary application is offline, tags will be stored locally until the state of the primary application is online when any stored tags will be published.

Supporting the notion of primary host ID is part of the Sparkplug B specification and as such, the main application and edge nodes in a system will need to be Sparkplug compliant

The short video below describes the benefits and use cases for MQTT Store and Forward within an Ignition system.

MQTT Modules Store and Forward Configuration

MQTT Engine

Setup the Primary Host to be used under MQTT Engine configuration under the Main section on the General tab

There are two methods that MQTT Engine can use to process historical events with Ignition:

  • Write historical events directly to the database, via the Historian, bypassing the Tag
  • Write historical events to the Tag instead of directly to Historian.

Review the MQTT History tutorial to determine the appropriate method for your system and details on the required configuration settings.

MQTT Transmission

Setup the History Store to be used under MQTT Transmission History configuration.

Data in In-Memory history stores will not be persisted across Ignition service restarts or edge device reboots

Setup the History Settings to be used under MQTT Transmission Settings configuration.

Additional Resources:

Ignition Video 10: Primary Host ID Setting

Ignition Video 12: Set Up Store-and-Forward System

Additional Resources

  • No labels