# EMQX EMQX is an open-source MQTT message broker built on Erlang/OTP, specifically designed to support the MQTT protocol. It offers a range of powerful features, making it an ideal choice for IoT (Internet of Things) applications. Below are the main features of EMQX: ## Key Features: ### MQTT 3.1 and 3.1.1 Support EMQX supports versions 3.1 and 3.1.1 of the MQTT protocol, enabling devices and applications to communicate efficiently using MQTT. ### MQTT 5.0 Support EMQX also supports the MQTT 5.0 protocol, which introduces additional features such as properties, shared subscriptions, session expiration, and more, enhancing message delivery flexibility. ### Clustering Support EMQX has robust clustering capabilities, allowing horizontal scaling to handle large-scale message traffic and connection requests. This ensures high availability and scalability. ### Plugin System EMQX provides a rich plugin system, enabling users to extend its functionality as needed, including plugins for authentication, authorization, data storage, message forwarding, and more. ### Security EMQX offers multi-layered security, including username and password-based authentication, TLS/SSL support for encrypted communication, ACL (Access Control Lists), and MQTT security features. ### Last Will Messages EMQX supports MQTT last will messages, ensuring messages are appropriately handled after a device disconnects. ### Data Storage EMQX supports various data storage backends, including Mnesia, MySQL, PostgreSQL, and Redis, for flexible message data storage. ### Visualization and Monitoring EMQX provides a user-friendly web interface for monitoring key metrics such as connections, sessions, message publishing, and subscriptions. ### Load Balancing EMQX features load balancing capabilities, automatically distributing connections and messages evenly across cluster nodes to improve performance and stability. ### High Availability EMQX supports hot backups and failover, ensuring high availability even in the event of node failures.