EMQX
EMQX is an open source, distributed MQTT broker you can self-host — a HiveMQ, AWS IoT Core, and Azure IoT Hub alternative built to connect massive IoT device fleets and route their messages in real time, on your own infrastructure.
What is EMQX?
EMQX is an open source, distributed MQTT broker for IoT. Written in Erlang, it clusters across multiple nodes to connect huge numbers of devices — the project claims 100M+ concurrent MQTT clients across a cluster — and routes their pub/sub messages in real time, with a built-in SQL rule engine for processing and forwarding that data.
What is EMQX best for?
Large or fast-growing IoT deployments — connected vehicles, industrial sensors, smart cities — where a single-node broker isn’t enough and you need horizontal scaling, high availability, and built-in data integration to databases and streaming platforms, all on infrastructure you control.
What can EMQX do?
- Speak MQTT 5.0, 3.1.1, and 3.1, plus MQTT over QUIC, MQTT-SN, CoAP, and LwM2M
- Cluster across nodes for high availability and scale to 100M+ concurrent connections
- Process and route messages with a SQL-based rule engine, no external stream processor needed
- Bridge data to 50+ systems — Kafka, PostgreSQL, MongoDB, Redis, and more — via built-in connectors
- Build data pipelines visually with the Flow Designer, and validate payloads with a Schema Registry
- Secure connections with TLS/SSL, multiple authentication backends, and per-topic ACLs
Where does EMQX fall short?
- Its license restricts clustered production use. As of v5.9, EMQX is under the Business Source License 1.1 — source-available, not OSI open source. The free grant covers non-production use and single-node production; running a production cluster commercially requires a paid license (each version converts to Apache 2.0 four years after release).
- It’s overkill for small fleets. If you’re connecting a few hundred or few thousand devices, a lightweight broker like Eclipse Mosquitto is simpler to run and lighter on resources than an Erlang cluster.
- It’s an MQTT broker, not a general message queue. For app-to-app task queues or high-throughput event streaming between backend services, purpose-built tools like RabbitMQ or Apache Kafka are a better fit than a device-facing MQTT broker.
Is EMQX free?
Yes to self-host in most cases — EMQX is free to run for non-production use and for single-node production deployments under its BSL 1.1 grant. Running a production cluster for commercial use requires a paid Enterprise license. EMQX also offers a managed cloud: a Serverless tier that starts free (up to 1,000 connections, pay-as-you-go beyond), Dedicated clusters from around $234/month, and BYOC/Enterprise plans with custom pricing.
What does EMQX replace?
EMQX is a self-hosted alternative to managed IoT messaging services like AWS IoT Core and Azure IoT Hub, and to the commercial HiveMQ enterprise broker. It does the same device-connectivity and pub/sub job, but you run it on your own infrastructure without per-connection or per-message cloud billing.
FAQ
Is EMQX open source? Partly. Through v5.8 EMQX was Apache 2.0; from v5.9 it moved to the Business Source License 1.1, which is source-available rather than OSI open source. The code is public and each release converts to Apache 2.0 four years after it ships.
Can I self-host EMQX for free? Yes for non-production use and for single-node production deployments. A commercial production cluster needs a paid Enterprise license, so the free path suits development, testing, and smaller single-node setups.
Is EMQX a good HiveMQ or AWS IoT Core alternative? For large self-hosted fleets, yes — it clusters to very high connection counts and includes a rule engine and data integrations out of the box. If you want a fully managed service with no servers to run, AWS IoT Core or EMQX’s own cloud may be easier.
What do I need to run EMQX? A Linux server (Docker or a package install) for a single node; for production clustering you’ll run multiple nodes, typically on Kubernetes via the EMQX Operator, plus a commercial license.