Skip to content

Commit ad08d86

Browse files
authored
Merge pull request #193589 from kgremban/mar30-88848-90442
Clarify behavior of device twin updates/message order
2 parents 0d0b283 + a0ea803 commit ad08d86

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

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

Lines changed: 4 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

@@ -362,7 +362,9 @@ This information is kept at every level (not just the leaves of the JSON structu
362362

363363
## Optimistic concurrency
364364

365-
Tags, desired, and reported properties all support optimistic concurrency.
365+
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.
366+
367+
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.
366368

367369
Device twins have an ETag (`etag` property), as per [RFC7232](https://tools.ietf.org/html/rfc7232), that represents the twin's JSON representation. You can use the `etag` property in conditional update operations from the solution back end to ensure consistency. This is the only option for ensuring consistency in operations that involve the `tags` container.
368370

0 commit comments

Comments
 (0)