Overview
Discover what makes EMQX powerful
EMQX is a high‑performance, enterprise‑grade MQTT broker that has evolved into a unified platform supporting MQTT 5.0/3.x, MQTT‑SN, CoAP, LwM2M, and even MQTT over QUIC. From a developer’s perspective it is essentially a distributed message hub that can ingest, transform, and forward millions of IoT events with sub‑millisecond latency. The core engine is written in Erlang/OTP, giving it native fault tolerance and hot‑code swapping; the broker exposes a rich REST/GraphQL API, a WebSocket interface for browser clients, and a flexible rule engine that lets you write SQL‑style filters and actions. This combination of low‑level protocol handling and high‑level data processing makes EMQX a compelling choice for real‑time analytics, AI pipelines, and edge‑to‑cloud data orchestration.
Runtime
Cluster
Storage
Plugins & Gateways
Overview
EMQX is a high‑performance, enterprise‑grade MQTT broker that has evolved into a unified platform supporting MQTT 5.0/3.x, MQTT‑SN, CoAP, LwM2M, and even MQTT over QUIC. From a developer’s perspective it is essentially a distributed message hub that can ingest, transform, and forward millions of IoT events with sub‑millisecond latency. The core engine is written in Erlang/OTP, giving it native fault tolerance and hot‑code swapping; the broker exposes a rich REST/GraphQL API, a WebSocket interface for browser clients, and a flexible rule engine that lets you write SQL‑style filters and actions. This combination of low‑level protocol handling and high‑level data processing makes EMQX a compelling choice for real‑time analytics, AI pipelines, and edge‑to‑cloud data orchestration.
Architecture
- Runtime – Erlang/OTP runs the broker cluster, leveraging actor‑based concurrency and hot code reload. Each node is a lightweight Erlang VM that can be started as a Docker container or on bare metal.
- Cluster – Masterless clustering uses the Erlang distribution protocol; nodes discover each other via gossip or Kubernetes services. The cluster is horizontally scalable and automatically balances client connections.
- Storage – EMQX stores session metadata in an embedded key‑value store (Mnesia) and can persist retained messages to external databases such as PostgreSQL or Redis. For time‑series data it offers EMQX Tables, a columnar store optimized for IoT workloads.
- Plugins & Gateways – A plug‑in framework written in Erlang allows developers to add custom authentication, authorization, or protocol gateways (CoAP, MQTT‑SN). Gateways are standalone services that translate protocols into native MQTT before forwarding to the broker.
Core Capabilities
- Protocol Flexibility – Full support for MQTT 5.0, including topic aliasing, shared subscriptions, and enhanced QoS. QUIC support gives a TLS‑over‑UDP path that reduces connection latency.
- Rule Engine – An SQL‑based engine lets you write SELECT statements that match topics, filter payloads, and trigger actions such as HTTP callbacks, database writes, or Kafka publishes.
- Data Integration – Built‑in bridges to popular queues (Kafka, RabbitMQ) and cloud services (AWS SQS, Azure Event Hubs). Developers can also write custom bridges in Go or Python using the EMQX SDK.
- Security – Mutual TLS, SASL/PLAIN authentication, JWT support, and fine‑grained ACLs. The broker can integrate with external LDAP/Active Directory via a plugin.
Deployment & Infrastructure
EMQX is container‑first: official Docker images are available for all major platforms, and Helm charts simplify Kubernetes deployments. A single node can run on a 2‑core VM for prototyping, while production clusters scale to thousands of nodes across regions. The masterless design eliminates single‑point failures, and the cluster linking feature allows global distribution of topics with automatic failover. For high‑throughput scenarios, the broker can be tuned to use epmd for node discovery and Erlang's ETS tables for in‑memory state, yielding millions of messages per second.
Integration & Extensibility
- Plugin API – Exposes a clean Erlang module interface; developers can ship binary plugins or use the EMQX SDK to write plugins in Go, Rust, or Python.
- Webhooks & Callbacks – The rule engine can invoke HTTP/HTTPS endpoints, WebSocket streams, or custom functions. This is ideal for real‑time dashboards or AI inference services.
- SDKs – Official client libraries in Java, Python, Go, Node.js, and C++ cover both MQTT and WebSocket transports. The SDKs include automatic reconnection logic and QoS handling.
- Custom Topics & Namespaces – Developers can create hierarchical topic namespaces and attach metadata to topics, enabling multi‑tenant isolation within a single cluster.
Developer Experience
The documentation is comprehensive and organized around Getting Started, Configuration, API Reference, and Developer Guides. The community is active on Slack, Discord, and GitHub Discussions. The Business Source License (BSL 1.1) allows free use for open‑source projects while providing a clear upgrade path to enterprise features. The configuration is declarative, using environment variables or YAML files; most settings are hot‑reloadable thanks to Erlang’s runtime.
Use Cases
- Industrial IoT – Connect millions of sensors to a single cluster, use the rule engine to filter fault events, and stream alerts to an OPC‑UA gateway.
- Connected Vehicles – Low‑latency telemetry from 20M+ vehicles, with QUIC reducing handshake overhead and enabling real‑time route optimization.
- Smart Cities – CoAP gateways ingesting traffic sensors, then pushing data to Kafka for downstream analytics.
- AI‑Driven Analytics – Real‑time sensor streams feed into an LLM via the Flow Designer, enabling instant anomaly detection and predictive maintenance.
Advantages
- Performance – Erlang’s concurrency model delivers sub‑millisecond latency even at 100M concurrent connections.
- Scalability – Masterless clustering and global linking allow horizontal scaling without manual reconfiguration.
- Protocol Breadth – Native support for MQTT 5.0, QUIC, CoAP, LwM2M, and more reduces the need for separate protocol adapters.
- Extensibility – A
Open SourceReady to get started?
Join the community and start self-hosting EMQX today
Related Apps in cloud-platforms
Home Assistant
Open-source smart home hub for automation and integration
Caddy
Secure, auto‑TLS web server for every site
Traefik
Dynamic reverse proxy and load balancer for microservices
Pi‑hole
Network‑wide ad blocking with your own DNS server
CasaOS
Your Personal Cloud OS for Docker-based home servers
AdGuard Home
Network‑wide ad and tracker blocker
Weekly Views
Repository Health
Information
Explore More Apps
TrailBase
Fast, single‑file Firebase alternative built on Rust
Manifest
One-file backend for fast prototypes
Notifo
Multi‑channel notification service for modern apps
LMS
Self-hosted music streaming with rich metadata and discovery
OpenSMTPD
Self-hosted apis-services
Dashpress
Generate admin dashboards from your database instantly