Skip to content

Replace Message Bridge with nRF Cloud Message Routing #1410

Open
@coderbyheart

Description

@coderbyheart

The nRF Cloud Message Routing now sends AWS Thingy Shadow documents. This is much more convenient compared to the current implementation which requires the backend to poll the device state regularly.

The webhook now receives a message that is a copy of the $aws/things/<thing ID>/shadow/update/documents message.

In the example below this was the shadow update: {"reported": { "foo": "bar" }}

{
  "type": "device.messages",
  "messages": [
    {
      "teamId": "<team ID>",
      "deviceId": "<device ID>",
      "messageId": "251cd7a1-23a4-422d-be14-1aafd209e75b",
      "topic": "$aws/things/<device ID>/shadow/update/documents",
      "message": {
        "previous": {
          "state": {
            "desired": {
              "nrfcloud_mqtt_topic_prefix": "prod/<team ID>/",
              "pairing": {
                "state": "paired",
                "topics": {
                  "d2c": "prod/<team ID>/m/d/<device ID>/d2c",
                  "c2d": "prod/<team ID>/m/d/<device ID>/+/r"
                }
              }
            }
          },
          "metadata": {
            "desired": {
              "nrfcloud_mqtt_topic_prefix": { "timestamp": 1723215415 },
              "pairing": {
                "state": { "timestamp": 1723215415 },
                "topics": {
                  "d2c": { "timestamp": 1723215415 },
                  "c2d": { "timestamp": 1723215415 }
                }
              }
            }
          },
          "version": 1
        },
        "current": {
          "state": {
            "desired": {
              "nrfcloud_mqtt_topic_prefix": "prod/<team ID>/",
              "pairing": {
                "state": "paired",
                "topics": {
                  "d2c": "prod/<team ID>/m/d/<device ID>/d2c",
                  "c2d": "prod/<team ID>/m/d/<device ID>/+/r"
                }
              }
            },
            "reported": { "foo": "bar" }
          },
          "metadata": {
            "desired": {
              "nrfcloud_mqtt_topic_prefix": { "timestamp": 1723215415 },
              "pairing": {
                "state": { "timestamp": 1723215415 },
                "topics": {
                  "d2c": { "timestamp": 1723215415 },
                  "c2d": { "timestamp": 1723215415 }
                }
              }
            },
            "reported": { "foo": { "timestamp": 1749799965 } }
          },
          "version": 2
        },
        "timestamp": 1749799965
      },
      "receivedAt": "2025-06-13T07:32:45.090Z"
    }
  ],
  "timestamp": "2025-06-13T07:32:45.145971775Z"
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions