
Most IoT projects start the same way: you wire up sensors, pick an MQTT broker, find a time-series database, bolt on Grafana, and write glue code to tie it all together. ThingsBoard rolls device management, data processing, dashboards, and alarm handling into a single platform, so you skip the integration work. It has been in active development since 2016, with 21K+ GitHub stars and 253 contributors.
ThingsBoard is a Java-based monolith (single deployable) or microservices-based platform depending on scale. The architecture centers on three layers:
The transport layer accepts device telemetry over MQTT 3.1.1, CoAP, HTTP, SNMP, and LwM2M. Devices authenticate via tokens, X.509 certificates, or access keys. For legacy industrial equipment, ThingsBoard IoT Gateway (a separate Python-based service) translates protocols like Modbus TCP/RTU, OPC-UA, BACnet, and BLE into ThingsBoard's internal format.
The rule engine processes incoming telemetry through configurable chains of nodes: message filters, transformations, enrichments, and actions. You can create alarms, send notifications, push data to Kafka or RabbitMQ, call external REST APIs, or issue RPC commands back to devices. Version 4.2 (August 2025) added an AI Rule Node for inference within rule chains.
The application layer serves the web UI, REST API, and WebSocket subscriptions for real-time updates. Multi-tenancy is fundamental to the data model: every entity belongs to a tenant, and tenant admins manage their own devices, dashboards, and users independently.
For storage, ThingsBoard uses PostgreSQL for entities and metadata. For high-volume telemetry (above ~5,000 messages/second), it supports a hybrid mode with Cassandra or TimescaleDB handling time-series data.
ThingsBoard is a general-purpose IoT platform, not a manufacturing-specific tool. It lacks built-in MES concepts like work orders, bill of materials, or OEE calculations. But its protocol breadth and multi-tenancy make it useful in manufacturing scenarios where the primary need is device connectivity and monitoring rather than production execution.
Typical factory use cases: connecting temperature/humidity/vibration sensors via MQTT, building operator dashboards for line-of-sight monitoring, setting up threshold alarms for equipment parameters, and bridging legacy PLCs via the OPC-UA or Modbus gateway connectors. The SCADA symbol editor (added in recent versions) moves it closer to traditional HMI use, though it is not a replacement for purpose-built SCADA systems like Ignition.
For plants that already have a MING stack (Mosquitto + InfluxDB + Node-RED + Grafana), ThingsBoard represents a consolidation play: one platform instead of four. The trade-off is that each individual component in the MING stack is best-in-class at its specific job, while ThingsBoard is a generalist.
Self-hosted and free to start. Community Edition is Apache-2.0 licensed with no device limits. You can run it on a single VM with 4GB RAM and PostgreSQL, or scale to microservices on Kubernetes for millions of devices.
Multi-tenancy is native, not bolted on. If you are an IoT integrator or managed service provider serving multiple factory clients, the tenant model avoids running separate instances per customer.
Edge computing without a separate product. ThingsBoard Edge runs the same rule engine and dashboards locally, handles disconnected operation, and syncs automatically. Useful for remote factory sites or areas with unreliable connectivity.
Protocol gateway included. The IoT Gateway covers Modbus, OPC-UA, BACnet, BLE, CAN bus, and ODBC at no extra cost. For brownfield factories with legacy PLCs and sensors, this removes the need for a separate protocol translator.
Community Edition installs via Docker, apt packages (Ubuntu/Debian/CentOS), or directly on a Raspberry Pi (4GB+ RAM). A single-node setup with PostgreSQL needs 2 CPU cores and 4GB RAM for testing; production with moderate load recommends 8 cores and 16GB RAM.
The learning curve is moderate. The dashboard builder and rule chain designer are visual, so basic monitoring setups work without writing code. However, complex rule chains, custom widgets, and multi-tenant configurations require reading the docs carefully. Community examples are thinner than you would find for Grafana or Node-RED, and some tutorial content is outdated.
Professional Edition adds white-labeling, advanced RBAC, platform integrations (Kafka, Kinesis, SQS), and CSV/scheduling features. Self-managed PE starts at $10/month for 10 devices (Maker plan), scaling to $99/month for 100 devices with white-labeling (Pilot). Managed cloud starts higher. There is a free PE trial plan for evaluating advanced features.
Node-RED can send processed data to ThingsBoard via MQTT or REST API. Some deployments use Node-RED for complex flow logic and protocol translation at the edge, feeding results into ThingsBoard for centralized dashboards and device management.
ThingsBoard can push telemetry data to Grafana via PostgreSQL or Cassandra as a shared data source. Some teams run Grafana alongside ThingsBoard for more advanced visualization, though ThingsBoard's built-in dashboards cover most monitoring use cases.
ThingsBoard's MQTT transport layer can connect to Mosquitto brokers, or ThingsBoard can act as its own MQTT broker (via TBMQ). Devices publishing to a Mosquitto broker can be ingested into ThingsBoard using the IoT Gateway's MQTT connector.