Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added en_US/getting-started/assets/message_queque.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
121 changes: 75 additions & 46 deletions en_US/getting-started/new-features.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,82 +6,111 @@ description: This section lists the new features introduced in EMQX 5.2 and late

This page highlights major new features supported in the current release. Note that it does not list every feature provided by EMQX.

## Cluster Linking
## EMQX 6.0.0 (Latest)

Cluster Linking enables seamless, secure, and efficient message sharing between geographically distributed EMQX clusters. Unlike traditional MQTT bridges, which forward all messages and often require topic prefixes to prevent feedback loops, Cluster Linking transfers only relevant messages based on active subscriptions, minimizing bandwidth use, reducing latency, and increasing scalability.
### Message Queue

The configuration and management of Cluster Linking are designed to be simple and flexible. You can create, modify, and monitor cluster links directly from the EMQX Dashboard, configuration file, or through REST APIs. EMQX also provides visual status indicators and link statistics for real-time visibility.
Message Queue unifies reliable real-time MQTT publish/subscribe with asynchronous message queueing within EMQX, without relying on external queuing services.

To get started with the Cluster Linking, see [Quick Start with Cluster Linking](../cluster-linking/quick-start.md).
Unlike traditional MQTT, which depends on subscriber availability, Message Queues decouple publishers and subscribers by buffering messages on the server. Messages matching a specified topic filter are stored persistently and can be consumed later using a special topic format: `$q/{topic_filter}`. This ensures reliable message delivery, even when clients are offline or the network is unstable.

![cluster_linking_feature](./assets/cluster_linking_feature.png)
<img src="./assets/message_queue.png" alt="message_queue" style="zoom: 33%;" />

## Schema Validation
This feature enables MQTT to handle both real-time and delayed workloads, simplifying IoT system architecture by removing the need for external queuing systems like Kafka or RabbitMQ. It’s ideal for scenarios where message durability, reliable delivery, and offline buffering are critical.

[Schema Validation](../data-integration/schema-validation.md) ensures that only messages conforming to predefined formats are processed or delivered. EMQX supports JSON Schema, Protobuf, Avro, and rule engine SQL syntax for validation. Based on the outcome, users can configure actions such as dropping messages, disconnecting clients, or triggering rule engine events for failed validations.
#### Feature Highlights
- **Unified Messaging Model**: Combines lightweight MQTT with enterprise-grade queuing in a single system.
- **Offline Storage**: Messages are retained even when subscribers are disconnected.
- **Last-Value Retention**: Optionally keep only the latest message per key (e.g., device ID), perfect for fast-changing data like sensor readings.
- **Flexible Dispatch Strategies**: Choose from Random, Round Robin, or Least Inflight Subscriber to distribute messages efficiently.
- **Guaranteed Delivery**: Supports persistent storage and QoS 1 delivery to ensure no data is lost.

## Message Transformation
Learn more in the [Message Queue documentation](../message-queue/message-queue-concept.md).

[Message Transformation](../data-integration/message-transformation.md) allows users to define transformation pipelines that decode, modify, and re-encode messages before delivery or further processing. The system supports nested transformations, multiple encoders/decoders, and dynamic value assignments using [Variform expressions](../configuration/configuration.md#variform-expressions).
### Multi-Tenancy with Namespaced Roles

## Expanded Support in Data Integration
EMQX 6.0.0 introduces namespaced roles to enhance [multi-tenancy](../multi-tenancy/namespace-overview.md) and access control across large-scale IoT deployments. With this feature, users are assigned to specific namespaces, isolated environments where they can manage their own resources such as Rules, Connectors, and Actions, without accessing or impacting other tenants.

Recent versions of EMQX have significantly enhanced the data integration capabilities. New data integrations supported in recent versions include, but are not limited to, the following:
Namespaced roles support fine-grained permissions such as Administrator and Viewer, and can be managed through the Dashboard, API, or CLI, making it easier to delegate responsibilities while ensuring secure isolation between teams, departments, or customers.

- **[Snowflake](../data-integration/snowflake.md)**: Writes the processed data to the Snowflake Stage and loads it into a Snowflake table. Safely store IoT data in Snowflake for long-term archival and leverage Snowflake's data warehousing and analytics capabilities to perform real-time or batch analysis.
- **[Azure Blob Storage](../data-integration/azure-blob-storage.md)**: Seamlessly integrates EMQX with Microsoft Azure’s scalable object storage service. Ideal for archiving massive volumes of IoT telemetry and event data, it supports storing both structured and unstructured data in a durable, cost-effective way, similar to AWS S3.
- **[Datalayers](../data-integration/data-bridge-datalayers.md)**: Datalayers is a distributed edge-cloud database platform designed for Industrial IoT, Internet of Vehicles (IoV), and energy systems. Through the integration with EMQX, users can ingest real-time data into Datalayers for time-series storage, key-value caching, and perform analytics.
#### Feature Highlights
- **Secure Isolation**: Users can only access and manage resources within their assigned namespace (e.g., `ns:team_a::administrator`).
- **Granular Access Control**: Namespaced users have full access to namespace-specific resources, but cluster-level settings remain read-only unless granted global admin rights.
- **Simplified Operations**: Roles can be created and assigned easily during user creation.
- **Scalability for Enterprises**: Ideal for organizations offering multi-tenant MQTT services or managing internal business units with separate responsibilities.

## Enhanced Security
#### Additional Enhancements
- **Improved Observability**: Dashboard views are filtered by namespace for better focus.
- **Optimized Session Tracking**: Namespaced session counts now refresh on demand (under 1,000 sessions) or every 5 seconds otherwise, ensuring better performance and accuracy.

In recent versions, EMQX supports more authentication and authorization methods, providing more flexible and fine-grained access control capabilities. Newly supported features include:
For detailed instructions, see [Create a User with a Namespaced Role](../dashboard/system.md#create-a-user-with-a-namespaced-role).

- **[LDAP Integration](../access-control/authn/ldap.md)**: Authenticate users against an external LDAP directory, supporting enterprise-grade user management.
- **[REST API-Based MQTT 5.0 SCRAM Authentication](../access-control/authn/scram_restapi.md)**: Leverage a RESTful API for SCRAM-based authentication in compliance with MQTT 5.0 standards.
- **[Kerberos Authentication](../access-control/authn/kerberos.md)**: Integrate with Kerberos-based SSO systems for secure, centralized user authentication.
- **[Client-Info Authentication](../access-control/authn/cinfo.md)**: Allow flexible access control based on client metadata like IP, device ID, or username.
### Optimized Durable Storage

## OpenTelemetry Integration for Metrics, Logs, and Traces
EMQX 6.0.0 delivers significant improvements to durable storage, enhancing performance and scalability for high-throughput IoT workloads. By decoupling session data from other broker metadata, EMQX now consumes less RAM and achieves better storage efficiency, allowing more connections per node.

EMQX now supports OpenTelemetry, making it easier to monitor and troubleshoot your MQTT systems.
#### Optimized RocksDB Parameters

**Key Features:**
New configuration options give precise control over memory and performance:

- **Metrics**: Exports real-time metrics to OpenTelemetry Collector, then view them in tools like Prometheus and Grafana.
- **Logs**: Sends structured logs with rich context (like trace IDs) to your log system for easier debugging.
- **Tracing**: Enables distributed tracing of MQTT message flows across EMQX nodes. Useful for finding delays, routing issues, or node-specific performance bottlenecks.
- **End-to-End Tracing Mode**: Tracks full message paths and client actions. Filter by client ID, topic, or QoS. Control sampling and export rate to manage system load.
- `durable_storage.messages.rocksdb.write_buffer_size`: Controls per-shard memtable size.
- `durable_storage.messages.rocksdb.cache_size`: Sets block cache size per shard.
- `durable_storage.messages.rocksdb.max_open_files`: Limits file descriptors per shard.
- `durable_storage.messages.layout.wildcard_thresholds`: Optimizes wildcard handling in storage layout.

OpenTelemetry helps you get full visibility into EMQX performance and message flows using open, standard tools. Refer to [Integrate with OpenTelemetry](../observability/opentelemetry/opentelemetry.md) for details.
#### Additional Enhancements

## New Protocol Gateways
- **Efficient Serialization**: The default serialization format has changed to ASN.1, reducing storage size and improving processing speed.
- **Faster Access & Lower Overhead**: Improved storage layout leads to quicker message retrieval and reduced disk and memory overhead.

EMQX introduced several new protocol gateways to support industry-specific messaging standards, enabling direct integration with vertical systems in transportation, energy, and electric mobility.
These enhancements make EMQX more capable of handling large-scale, persistent MQTT workloads with consistent performance.

- **[OCPP Gateway](../gateway/ocpp.md)**: Provides native support for the Open Charge Point Protocol (OCPP) 1.6, allowing EMQX to connect directly with EV charging stations and convert OCPP messages into MQTT for unified communication.
- **[JT/T 808 Gateway](../gateway/jt808.md)** Implements the JT/T 808 protocol for vehicle telematics, enabling EMQX to receive binary messages from GPS terminals and onboard units and forward them as hex-encoded payloads in MQTT messages for downstream decoding and analysis.
- **[GB/T 32960 Gateway](../gateway/gbt32960.md)**: Enables EMQX to receive, decode, and forward structured diagnostic and telemetry data from new energy vehicles via MQTT, based on the GB/T 32960 protocol.
### Expanded Support in Data Integration

These gateways make it easier to bring industry-standard protocols into an MQTT-based data platform, supporting scenarios like smart charging, fleet monitoring, and EV data reporting.
EMQX 6.0.0 continues to strengthen its data integration capabilities, empowering users to seamlessly connect MQTT data with modern cloud and database ecosystems for real-time analytics, processing, and storage.

## Optimized Dashboard Experience
#### New Integrations

The EMQX Dashboard has delivered a more intuitive and powerful interface for managing your MQTT broker since version 5.8. Here are some major enhancements:
The following integrations have been newly added in EMQX 6.0.0:

**Usability Improvements**
- **[Google BigQuery](../data-integration/bigquery.md)**: Integrate MQTT data with BigQuery for large-scale data warehousing and advanced querying, enabling insights from massive IoT datasets.
- **[AWS AlloyDB](../data-integration/alloydb.md)**, **[CockroachDB](../data-integration/cockroachdb.md)**, and **[AWS Redshift](../data-integration/redshift.md)**: Stream MQTT data to these high-performance databases for real-time analytics and scalable storage. Perfect for enterprise-grade IoT analytics.

- Added pagination, searching, and status filtering to Action and Source pages, making it simpler to manage rules and integrations at scale.
- Included a one-click cluster metrics reset, speeding up diagnostics and observation of cluster changes.
#### Enhanced Integrations

**Metrics Display Enhancements**
In addition to new integrations, EMQX 6.0.0 brings powerful enhancements to existing integrations, improving performance, usability, and cloud-native compatibility:

- Optimized the `/api/v5/monitor` endpoint with concurrent RPC calls to fetch cluster-wide metrics, eliminating timeouts in large deployments.
- Added key metrics like message rates directly on the homepage, reducing navigation for critical insights.
- **Snowflake Snowpipe Streaming**: Now supports low-latency data ingestion into Snowflake tables via Snowpipe Streaming (preview feature of Snowflake), available for AWS-hosted accounts.
- **RocketMQ Action**: Adds support for `key` and `tag` templates, plus a `key_dispatch` strategy for flexible message routing and metadata enrichment.
- **S3 Tables Connector**: `access_key_id` and `secret_access_key` are now optional, with automatic retrieval from EC2 Instance Metadata Service v2 APIs in AWS-hosted environments.
- **RabbitMQ Sink**: Allows customization of Headers and Properties Templates to enhance message routing and compatibility within RabbitMQ.

**Monitoring Tools**
### Other Enhancements

Introduced a simplified webhook setup for alarm events, making it easier to automate monitoring and stay proactive. For more information, see [Integrate Webhook to Send Alarm Events](../observability/alarms.md#integrate-webhook-to-send-alarm-events).
#### Advanced LLM-Based MQTT Data Processing

## More Features
EMQX 6.0.0 enhances LLM-based data processing with support for [Google Gemini models](../flow-designer/gemini-node-quick-start.md), alongside OpenAI and Anthropic Claude.

In addition to the highlights covered above, recent EMQX updates include many other new features and enhancements. For a complete list, see the [Release Notes](../changes/changes-ee-v5.md).
#### Enhanced LDAP Support

LDAP authorization now supports extended ACL rules in JSON format, and LDAP authentication can fetch ACL rules directly from LDAP with client-side caching.

#### Improved Tracing

Configurable limits for maximum traces (`trace.max_traces`) and trace file sizes (`trace.max_file_size`). After `max_file_size` is reached, the trace log will rotate to a new file instead of halting.

#### Cluster Management

New `cluster.description` configuration option allows users to set and display custom cluster descriptions in the EMQX Dashboard. For how to add the cluster description on the Dashboard, see [Dashboard -> Management -> Cluster Settings](../dashboard/cluster_settings.md#cluster).

### More Features

In addition to the highlights covered above, recent EMQX updates include many other new features and enhancements. For a complete list, see the [Release Notes](../changes/changes-ee-v6.md).

### Breaking Changes

For complete information about what's deprecated and breaking changes, see [Incompatible Changes between EMQX 5.x and EMQX 6.0](../changes/breaking-changes-6.0.md).

## EMQX 5.x Series

For a complete list of features and updates in EMQX 5.x, please refer to: [EMQX 5.10 Documentation – What's New](https://docs.emqx.com/en/emqx/5.10/getting-started/new-features.html).
Binary file added zh_CN/getting-started/assets/message_queque.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Loading