Hierarchical MQTT Eventing

Hierarchical MQTT Eventing#

User Story & Use Case#

As AAS Components user I want hierarchical MQTT topics in the AAS Registry Component so that I can subscribe precisely to the topics of interest without having to filter on client side

MQTT supports hierarchical topics with wildcard subscription support. For example, if the topics a/b/x and a/b/y exist, subscribing to a/b/+ subscribes to all events broadcasted on both topics.

Feature Overview#

The following hierarchical topics with their respective payloads are implemented:

  • aas-registry//shells/created

  • aas-registry//shells/updated

    • Payload: New AAS-Descriptor

  • aas-registry//shells/removed

    • payload: Old AAS-Descriptor

  • aas-registry//submodels/added

  • aas-registry//submodels/updated

    • Payload: New SM-Descriptor

  • aas-registry//submodels/deleted

    • Payload: Old SM-Descriptor

  • aas-registry//shells//submodels/added

  • aas-registry//shells//submodels/deleted

    • Payload: New SM-Descriptor

  • /aas-registry//shells//submodels/deleted

    • Payload: Old SM-Descriptor

For AAS-Identifier encoding, Base64URL encoding and URL encoding are available.

Feature Configuration#

The feature can be configured in the registry.properties file by setting registry.events = MQTTV2 for Base64URL encoding or registry.events = MQTTV2_SIMPLE_ENCODING for URL encoding. Additionally, the Registry id needs to be configured via registry.id = .

An example configuration for this feature could be:

registry.events = MQTTV2
registry.id = product-aas-registry

The MQTT broker connectivity is configured via mqtt.properties