gitmyhub

emqx

Erlang ★ 16k updated 1d ago

The most scalable and reliable MQTT broker for AI, IoT, IIoT and connected vehicles

An MQTT message broker built to connect millions of IoT devices simultaneously, route their messages in real time, and forward data to databases, queues, and cloud services at massive scale.

ErlangMQTTSQLTLSPrometheusGrafanasetup: hardcomplexity 4/5

EMQX is an MQTT broker — software that sits in the middle of large networks of connected devices and routes their messages to the right places. It is aimed at the data infrastructure used in the Internet of Things, industrial IoT, connected vehicles, smart cities, and AI applications that work with live device streams.

Underneath, EMQX speaks the MQTT protocol in its 5.0, 3.1.1 and 3.1 versions, and also supports related protocols like MQTT-SN, CoAP, LwM2M and MQTT over QUIC through built-in gateways. A single cluster is designed to connect more than 100 million MQTT clients at once and process millions of messages per second with sub-millisecond latency, using a masterless clustering setup so the system stays up if individual nodes fail. Incoming messages can be filtered, transformed and enriched in flight through an SQL-based Rule Engine, or built visually with a drag-and-drop Flow Designer. From there, data can be forwarded to over fifty external systems, including message queues like Kafka and RabbitMQ, databases like PostgreSQL, MySQL, MongoDB, Redis and InfluxDB, and cloud services like AWS Kinesis, GCP Pub/Sub and Azure Event Hubs.

You would reach for EMQX when you need to ingest data from many connected devices at scale and route it reliably into the rest of your stack. It includes TLS/SSL encryption, authentication via JWT, X.509 certificates, LDAP and database lookups, monitoring through Prometheus, Grafana and OpenTelemetry, an HTTP API and a web Dashboard.

EMQX is written in Erlang and, from version 5.9.0, is released under the Business Source License 1.1 as a single unified offering.

Where it fits