MQTT is specially designed for IoT devices with low performance, low power consumption and unreliable network connection. The protocol is light and flexible enough to meet the needs of fast analysis and response of devices and diversity of IoT services.
Kafka is not built for edge IoT communication. Kafka client needs a stable network connection and more hardware resources. At the same time, it lacks the technical features necessary for IoT scenarios, such as keepalives and will messages.
Kafka focuses on data storage and reading, while EMQX focuses on the communication between the client and the server. EMQX quickly receives and processes messages from a large number of IoT devices. Kafka collects and stores these data and sends them to data analysts for analysis and processing.
With the help of EMQX’s data bridge or Rule Action features, it can consume from and/or produce message batches to Kafka. With UI configuration interface, you can easily setup the data pipelines to pipe data between your IoT devices and enterprise data platforms without having to implement it yourself.
Thanks to the asynchronous and batch processing mechanism, in our stress tests, EMQX is able to write up to 1 million messages per second to Kafka. And EMQX is able to automatically discover the partition scale-ups in Kafka, without having to re-configure or restart which may cause interruptions to the data stream, making it easy for you to flexibly scale-up the capacity as your business grows.
Through the built-in rule engine of EMQX Enterprise, you can extract, filter, enrich and transform IoT data in real-time, and then write the processed results to a specific Kafka topic. Combined with Kafka's streaming processing capability, you can quickly build application integration and business Innovation.