Skip to content

Commit 5495b9c

Browse files
committed
Clarify behavior of device twin updates/message order
1 parent 48edb17 commit 5495b9c

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

articles/iot-hub/iot-hub-devguide-device-twins.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ Use device twins to:
2626

2727
* Store device-specific metadata in the cloud. For example, the deployment location of a vending machine.
2828

29-
* Report current state information such as available capabilities and conditions from your device app. For example, a device is connected to your IoT hub over cellular or WiFi.
29+
* Report current state information such as available capabilities and conditions from your device app. For example, whether a device is connected to your IoT hub over cellular or WiFi.
3030

3131
* Synchronize the state of long-running workflows between device app and back-end app. For example, when the solution back end specifies the new firmware version to install, and the device app reports the various stages of the update process.
3232

@@ -360,7 +360,8 @@ This information is kept at every level (not just the leaves of the JSON structu
360360

361361
## Optimistic concurrency
362362

363-
Tags, desired, and reported properties all support optimistic concurrency.
363+
Tags, desired properties, and reported properties all support optimistic concurrency. If you need to guarantee order of twin property updates, consider implementing synchronization at the application level by waiting for reported properties callback before sending the next update.
364+
364365
Tags have an ETag, as per [RFC7232](https://tools.ietf.org/html/rfc7232), that represents the tag's JSON representation. You can use ETags in conditional update operations from the solution back end to ensure consistency.
365366

366367
Device twin desired and reported properties do not have ETags, but have a `$version` value that is guaranteed to be incremental. Similarly to an ETag, the version can be used by the updating party to enforce consistency of updates. For example, a device app for a reported property or the solution back end for a desired property.

0 commit comments

Comments
 (0)