In order to separate incoming and outgoing MQTT traffic, pontos-hub makes use of two root topics: PONTOS_INGRESS and PONTOS_EGRESS. Incoming messages to PONTOS_INGRESS gets duplicated and republished onto PONTOS_EGRESS.
The main reason for this design is the lack of proper acl filtering for every message (ACL is only applied on SUBSCRIBE event), see for example: emqx/emqx#2936
However, to maintain ordering guarantee between messages on the MQTT bus, the republishing can not be parallelized, thus introducing a performance bottleneck.
In order to separate incoming and outgoing MQTT traffic, pontos-hub makes use of two root topics:
PONTOS_INGRESSandPONTOS_EGRESS. Incoming messages toPONTOS_INGRESSgets duplicated and republished ontoPONTOS_EGRESS.The main reason for this design is the lack of proper acl filtering for every message (ACL is only applied on SUBSCRIBE event), see for example: emqx/emqx#2936
However, to maintain ordering guarantee between messages on the MQTT bus, the republishing can not be parallelized, thus introducing a performance bottleneck.