How to broadcast to device groups with Event Grid MQTT when clients don’t know their own attributes?
ND
0
Reputation points
Hi,
I’m evaluating Azure Event Grid MQTT (preview) for a large IoT deployment, and I’ve run into a design challenge that I can’t resolve with the current documentation.
My setup
- I have many physical devices and device groups (> 10).
- Physical devices connect to MQTT clients in azure.
- Azure Event Grid MQTT Clients has information not available on the physical devices, such as attributes.
My requirements
- Group messaging:
- Goal: I want to broadcast messages to groups of devices based on their attributes in Event Grid (e.g., all devices with some_attribute=1 or customerId=42).
- Restrictions:
- The devices should only receive message from topics that match their attributes, e.g. clients with attributes. customerId=42 should only be able to listen on someTopic/customerId/42. someTopic/customerId/32 should be forbidden.
- The physical hardware devices should not be required to know the attributes of azure-MQTT-Client. So when i setup subscription, the number “42” should not be required for the physical device to know.
The problem
- Topic Spaces let me define patterns like:
cloud2device/${client.attributes.customerId}/# - But devices cannot use placeholders like ${client.attributes.customerId} in their subscription filters.
They must specify the resolved value, which they don’t know. - A client’s attributes can change, but physical devices should remain stateless.
My question
Given these constraints Is there a built-in way for the broker to automatically route messages to clients based on their attributes (without the device knowing the attribute) which will allow me to accomplish group broadcast with Event Grid MQTT?
Any guidance, or confirmation of current limitations, would be much appreciated.
Thanks!
Azure Event Grid
Azure Event Grid
An Azure event routing service designed for high availability, consistent performance, and dynamic scale.
Sign in to answer