Build the topology you need
NATS servers snap together like building blocks. Connect autonomous plants, regional clusters and cloud in the topology your operations need.
Use the right protocol at each layer. MQTT gets data out of the plant. NATS takes it everywhere else, and lets applications ask questions of it, not just listen.
Trusted by leading enterprise companies

MQTT is the right protocol at the edge. It is small, it runs on constrained devices, and your SCADA, gateways and newer PLCs already speak it. Above Level 1, though, a broker only moves data up. Everything downstream can only listen.
So the enterprise side grows around the gap: a streaming platform for retention, a database for current state, an API for anything that needs an answer, and another broker to federate per site. Four systems for one data point, in every plant.
A broker moves telemetry up. A dashboard, an MES or a model has no way to ask a line a question, so that path is built separately, with its own auth.
Connecting plants, regions and cloud means bridging brokers or adding a second platform in the middle. Either way you get a hub with spokes.
A broker keeps the last value per topic. Replay, independent consumers and shared state mean another cluster beside it, in every plant.
SCADA, gateways and MQTT-native devices publish over MQTT and Sparkplug B to a NATS cluster at the site. PLCs that only speak Modbus or OPC UA get a small NATS client beside them. The site cluster keeps working through a WAN outage and holds one outbound link to the enterprise, where MES, ERP and analytics subscribe and use request-reply on the same subjects.
SCADA, edge gateways and MQTT-native devices publish MQTT or Sparkplug B to the MQTT 3.1.1 listener built into nats-server. Nothing at Level 1 changes, and there is no separate broker at the site.
With the WAN down, SCADA keeps publishing, the HMI and local applications keep subscribing and asking, and JetStream buffers what the enterprise missed until the link returns.
The hub serves the same subjects to MES, ERP and analytics across every site. Request-reply rides beside the telemetry, so the MES can ask a line a question and get an answer.
One outbound leaf link from the site to the hub. OT keeps its segmentation, with no inbound firewall rules or VPN tunnels.
NATS servers snap together like building blocks. Connect autonomous plants, regional clusters and cloud in the topology your operations need.
Publish updates, distribute work and use request-reply on one data plane. Applications consume events and ask for answers.
JetStream adds retention, replay and independent consumers. Key-value and object stores extend the same platform to shared state and files.
Clustering for high availability is built into open-source NATS. Run it yourself, on infrastructure you choose, or bring in Synadia support.
The edge guide covers the topologies a multi-site namespace needs: leaf node sizing, stream sourcing and account layout.
“NATS for us forms the backbone of our unified namespace. And it's essentially the data plane for our data centers into our cloud.”
Christopher Coco Principal Software Engineer, Verrus
The same pattern, in the industries where SCADA and MQTT already carry the site.
A NATS cluster per plant keeps lines and SCADA talking through a WAN outage. The MES gets request-reply and last-known state lives in KV.
Manufacturing & Industrial Automotive & MobilityThe plant that builds the vehicle and the vehicle on the road run the same leaf node pattern, on the same namespace.
Automotive & Mobility RetailPoint of sale, sensors and back-office systems keep working on the store network and sync to the enterprise when the link returns.
Retail
Customer storyCalix: 200 million events per minute on NATSThe communication layer for millions of home routers and access devices, moving device telemetry into the cloud in real time.
Blog seriesConnecting distributed SCADA with NATS.ioPart two maps leaf nodes, JetStream and decentralized auth onto ISA-95 Levels 1–4.
Blog seriesConnecting distributed SCADA with NATS.ioPart one: how SCADA Levels 0–4 map to modern industrial systems, and where NATS fits.
BlogDo you really need MQTT and Kafka for industrial IoT?What the MQTT-to-Kafka bridge costs, and how one system can do both jobs.
BlogMQTT vs NATS for fleet managementHub-and-spoke against a distributed mesh, with the trade-offs at each layer.docs.nats.ioDocsMQTT in NATSEnable the MQTT listener, map topics to subjects, and connect a client.
BlogWhat a unified namespace actually requiresFive capabilities any UNS needs, and why an MQTT broker covers two of them.Bring your site count, protocols and uptime targets. We will sketch the site cluster, the leaf links and the account layout with you, and the engineers on the call are the ones who build nats-server.
The questions plant and platform teams ask once they have decided to keep MQTT and are working out what sits above it.
MQTT is a protocol for getting data off devices: a lightweight publish-subscribe wire format with quality-of-service levels, retained messages and last-will, designed for constrained hardware and unreliable links. It says nothing about what happens once the data reaches a broker.
NATS is a messaging system. It has publish-subscribe too, but also request-reply, queue groups for distributing work, JetStream for durable streams, key-value and object stores for shared state, and clustering, leaf nodes and gateways for building a topology across sites and clouds. And nats-server speaks MQTT 3.1.1 natively, so you don't choose between them: MQTT at the edge, NATS everywhere else.
No. The simplest path is to point your SCADA platform's MQTT publisher and your gateways at the MQTT listener built into NATS, so the site cluster is the broker. If you already have a broker in place and want to keep it, forward selected data through an MQTT-to-NATS adapter instead. The adapter owns topic mapping, optional payload translation, and delivery handling such as retries and buffering, so decide up front who deploys, monitors and supports it.
Three ways, and you choose the one that fits the site. Most SCADA platforms, Ignition among them, and most edge gateways can publish MQTT or Sparkplug B straight to the MQTT 3.1.1 listener in NATS. If a broker is already in place, keep it and forward selected data through an MQTT-to-NATS adapter. Anything you write yourself uses a NATS client, and there are libraries for 45+ languages: a small client beside a Modbus, OPC UA or DNP3 PLC publishes its readings onto named subjects, and the MES and historian use the same libraries for request-reply and JetStream.
Whichever path you choose, you get the same NATS backbone above the site.
Between Level 1 and Level 2, as a data fabric. PLCs and the real-time control loops stay at Level 1, close to the process. The site NATS cluster gates them: it publishes their state and measurements as named subjects, carries commands back down under rate limits and permit lists, and lets the supervisory, MES and planning systems above subscribe and ask without touching the PLC network. The distributed SCADA series walks through the model level by level.
Yes. NATS 2.11 and later includes Sparkplug Aware broker behavior: NBIRTH and DBIRTH messages are stored as they pass through and made available on the $sparkplug/certificates topics the specification requires. Native NATS consumers see Sparkplug topics as subjects and must account for the topic mapping, and decode or normalize the Sparkplug payloads.
Nothing the plant notices. The site cluster is a full NATS system: SCADA keeps publishing, the HMI and local applications keep subscribing and calling each other, and JetStream keeps writing. When the link returns, the site sources what it buffered into the enterprise cluster, in order and from the last sequence the hub received.
No. The site cluster connects out to the enterprise hub as a leaf node, on port 7422 by default. There are no inbound firewall rules and no VPN tunnels. Accounts decide which subjects cross from the site to the enterprise, so raw machine data can stay local while KPIs and alarms go up.
News and content from across the community