Data Integration Incompatibility Between EMQX 5.1 and EMQX 4.4
The whole concept of Data Integration was upgraded in EMQX 5.1.
The previous Rule -> Action -> Resources process is changed to Rules -> Data Bridge.
In EMQX 4.4, there was a configuration entity for Action. But in EMQX 5.1, when adding an action for a certain rule, you must first create a data bridge and modify the bridge's SQL template to adapt the rule output.

The Modules -> Message Publish is moved into the Data Bridge.
The Message Publish Module in EMQX 4.4:

Save Offline Message features in EMQX 4.4 are removed.
Get Subscriptions features in EMQX 4.4 are removed.
DolphinDB, Lindorm, and SAP Event Mesh data bridges are not supported, but SAP Event Mesh is in the product roadmap.
EMQX Bridgeas a resource type is no longer supported.
Common Incompatibility Changes
- All SSL-related configuration options (
ssl,cafile,keyfile,certfile,verify) are changed to a unified structure and name. For example,ssl.cacertfile,ssl.certfile,ssl.keyfile,ssl.verify, and etc. - There is no equivalent functionality as the feature of saving offline messages to an external database and retrieving them when a client subscribes to topics (through the
$events/session_subscribedevent and bridge rule action).
Incompatibility in Functionality and Configuration Items
This section lists the functionality and configuration items changes for each data bridge.
Cassandra
The configuration name nodes is changed to servers.
Kafka Producer
- Changed configuration items:
serverstobootstrap_hostsauthentication_mechanismtoauthenticationsync_timeouttosync_query_timeoutsend_buffertosocket_opts.sndbuftcp_keepalivetosocket.tcp_keepalivestrategytopartition_strategycache_modetokafka.buffer.mode- Buffer mode enum
memory+disktohybrid highmem_droptokafka.buffer.memory_overload_protection
- No equivalent in EMQX 5.1:
query_api_versionskafka_ext_headers
- Nested
replayqrelated options (e.g.:max_batch_bytes) underkafkakey - Now, message key is templatable, whereas before it could be only a few option.
Kafka Consumer
- Changed configuration items:
serverstobootstrap_hostsmax_bytestokafka.max_batch_bytesoffset_reset_policyenum:{reset_to_latest, reset_by_subscriber}to{latest, earliest}
- There’s no
pool_sizein EMQX 5.1: the number of workers is set automatically by the lib depending on the number of partitions in the topic(s). - In EMQX 4.4, only plain SASL was supported for authentication. In EMQX 5.1, the same mechanisms as Kafka Producer is supported.
Pulsar Consumer
There is no Pulsar Consumer in EMQX 5.1.0.
Pulsar Producer
- In EMQX 5.1, the bridge only produces messages using the driver’s async API, without an option for sync API.
- Now, there is a template for the message key. Before, there are only a few options.
- Changed configuration items:
- Buffer mode enum
memory+disktohybrid max_total_bytestobuffer.per_partition_limitsegment_bytestobuffer.segment_bytes
- Buffer mode enum
Redis
The configuration item cmd is changed to command_template (common to all 3 Redis Modes).
Changes for "Cluster" mode:
- There is no
databasefield in EMQX 5.1. - There is no equivalent for
ttl(offline messages from EMQX 4.4) in EMQX 5.1.
Postgres
- No differences in connector.
- The batching configuration has moved to
resource_opts.*in the Action configuration.enable_batch = true(EMQX 4.4) toresource_opts.batch_size > 1(EMQX 5.1)batch_timeis hidden and defaults to0in EMQX 5.1.sqltoprepare_statement.
MySQL
useris changed tousername.- The batching configuration has moved to
resource_opts.*in the Action configuration.enable_batch = true(EMQX 4.4) toresource_opts.batch_size > 1(EMQX 5.1)batch_timeis hidden and defaults to0in EMQX 5.1.sqltoprepare_statement.
MQTT
- Changed configuration items:
addresstoserverpool_sizeto{egress,ingress}.pool_sizereconnect_intervaltoresource_opts.health_check_interval
- No equivalent in EMQX 5.1:
appendmountpoint
disk_cache = on(in EMQX 4.4) can be considered somewhat equivalent to settingresource_opts.buffer_mode = volatile_offload, but the latter is a hidden configuration option that defaults tomemory_only.- There is no RPC MQTT bridge equivalent in EMQX 5.1.
- Changed configuration items in Actions:
forward_topictoegress.remote.topicpayload_tmpltopayload
InfluxDB
The following changes are common to both API v1 and API v2.
Changed bridge configuration items:
hostandportare changed toserver.https_enabledand ssl options liketls_versionare changed tossl.
Changed configurations in Actions:
- There is no equivalent for
int_suffixin EMQX 5.1; the type is directly specified inwrite_syntax. measurement,timestamp,fields,tagsare changed towrite_syntax.
- There is no equivalent for
DolphinDB, Lindorm, SAP Event Mesh
There are no equivalent data bridges in EMQX 5.1.
Clickhouse
Changed configuration items:
servertourlusertousernamekeytopassword
Dynamo
- No equivalent for
regionin EMQX 5.1. - Now there is
payload_template.
HStreamDB
- The configuration item
serveris changed tourl. - The following items have no equivalents in EMQX 5.1:
grpc_timeoutpartition_keygrpc_flush_timeout
IoTDB
Changed configuration items:
host,rest_porttobase_urlrequest_timeouttoresource_opts.request_ttl
MongoDB
Changed configuration items:
logintousernameconnectTimeoutMStoconnect_timeout_msrs_set_nametoreplica_set_namepayload_tmpltopayload_template
OpenTSDB
sync is changed to resource_opts.query_mode = sync.
Oracle
user is changed to username.
TDengine
Changed configuration items:
host,porttoserverdbnametodatabase
GCP PubSub Producer
Deprecated configuration items:
flush_modeflush_period_ms
RabbitMQ Producer
- Changed configuration items:
servertohostandportpayload_tmpltopayload_templatedurabletodelivery_mode
exchange_typehas no equivalent in EMQX 5.1.
RocketMQ
- The following configuration items have no equivalents in EMQX 5.1:
namespacestrategykey
- Changed configuration items:
typetoresource_opts.query_modepayload_tmpltopayload_template