You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
|**Integration with Azure IoT Operations services**| Libraries provide access to services such as state store. |
24
-
|**Simplify complex messaging**| Provide support for communication between applications via MQTT5 using a remote procedure call (RPC) implementation. |
24
+
|**Simplify complex messaging**| Provide support for communication between applications via MQTT v5 using a remote procedure call (RPC) implementation. |
25
25
|**Support**| The SDKs are maintained and supported by a dedicated team at Microsoft. |
26
26
27
27
The SDKs are open source and available on GitHub:
@@ -34,23 +34,23 @@ The SDKs are open source and available on GitHub:
34
34
> Azure IoT Operations SDKs is currently in PREVIEW.
35
35
> The assets in the [Azure IoT Operations SDKs GitHub repository](https://github.com/Azure/iot-operations-sdks) have been made available for early access and feedback purposes.
36
36
37
-
## Goals of the SDKs
37
+
## Goal of the SDKs
38
38
39
-
The goal of the SDKs is to provide an application framework to abstract the MQTT concepts, with a clean API, that can also be consumed using the Protocol Compiler (Codegen) from [Digital Twins Definition Language (DTDL)](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/README.md) models.
39
+
The goal of the SDKs is to provide an application framework to abstract the MQTT concepts, with a clean API that let you use the *Protocol Compiler (codegen)*, to generate code from [Digital Twins Definition Language (DTDL)](https://github.com/Azure/opendigitaltwins-dtdl/blob/master/README.md) models in the supported programming languages.
40
40
41
41
The SDKs can be used to build highly available applications at the edge, that interact with Azure IoT Operations to perform operations such as **asset discovery**, **protocol translation** and **data transformation**.
42
42
43
43
## Benefits of using the SDKs
44
44
45
-
The SDKs provide a number of benefits compared to utilizing the MQTT client directly:
45
+
The SDKs provide a number of benefits compared to using the MQTT client directly:
46
46
47
47
| Feature | Benefit |
48
48
|-|-|
49
49
|**Connectivity**| Maintain a secure connection to the MQTT Broker, including rotating server certificates and authentication keys. |
50
50
|**Security**| Support SAT or X.509 certificate authentication with credential rotation. |
51
51
|**Configuration**| Configure the MQTT Broker connection through the file system, environment or connection string. |
52
52
|**Services**| Provides client libraries to Azure IoT Operations services for simplified development. |
53
-
|**Codegen**| Provides contract guarantees between client and servers via RPC and telemetry. |
53
+
|**Protocol Compiler (codegen)**| Provides contract guarantees between client and servers via RPC and telemetry. |
54
54
|**High availability**| Building blocks for building highly available apps via state store, lease lock and leader election clients. |
55
55
|**Payload formats**| Supports multiple serialization formats, built in. |
56
56
@@ -64,7 +64,7 @@ The SDKs provide a number of components available for simplicity and ease of use
64
64
65
65
* A set of clients providing integration with Azure IoT Operations services such as **state store**, **leader election**, **lease lock**, and **schema registry**.
66
66
67
-
* The **Protocol Compiler (Codegen)** allows clients and servers to communicate via a schema contract. First describe the communication (using **Telemetry** and **Commands**) with DTDL, then generate a set of client libraries and server library stubs across the supported programming languages.
67
+
* The **Protocol Compiler (codegen)** allows clients and servers to communicate via a schema contract. First describe the communication (using **Telemetry** and **Commands**) with DTDL, then generate a set of client libraries and server library stubs across the supported programming languages.
68
68
69
69
Read further about the underlying terminology and different components of the SDKs:
70
70
@@ -79,22 +79,20 @@ The SDKs supports the following application types:
79
79
80
80
| Application type | Description |
81
81
|-|-|
82
-
|[Edge application](https://github.com/Azure/iot-operations-sdks/blob/main/doc/edge_application/README.md)| A generic edge application that needs to interface with various Azure IoT Operations services such as the MQTT broker and state store. The SDKs provides convenient clients to simplify the development experience. </br>*An Edge Application is a customer managed artifact, including deployment to the cluster and monitoring execution.*|
83
-
|[Akri connector](https://github.com/Azure/iot-operations-sdks/blob/main/doc/akri_connector/README.md)</br>*(in development)*| A specialized edge application deployed by the Akri Operator and designed to interface with on-premises asset endpoints. The Akri connector is responsible for discovering assets available via the endpoint, and relaying information to and from those assets.</br>*The Akri Connector's deployment is managed automatically by the Akri Operator.*|
82
+
|[Edge application](https://github.com/Azure/iot-operations-sdks/blob/main/doc/edge_application/README.md)| A generic edge application that needs to interface with various Azure IoT Operations services such as the MQTT broker and state store. The SDKs provides convenient clients to simplify the development experience. </br></br>*An Edge Application is a customer managed artifact, including deployment to the cluster and monitoring execution.*|
83
+
|[Akri connector](https://github.com/Azure/iot-operations-sdks/blob/main/doc/akri_connector/README.md)</br>*(in development)*| A specialized edge application deployed by the Akri Operator and designed to interface with on-premises asset endpoints. The Akri connector is responsible for discovering assets available via the endpoint, and relaying information to and from those assets.</br></br>*The Akri connector's deployment is managed automatically by the Akri Operator.*|
84
84
85
85
> [!NOTE]
86
86
> The Akri connector is part of the Akri services (preview), which is under active development and will be available in the near future.
87
87
88
-
## Samples and tutorials
88
+
## Samples
89
89
90
90
Review the [samples](https://github.com/Azure/iot-operations-sdks/tree/main/samples) directory for samples about creating applications for Azure IoT Operation on the supported languages.
91
91
92
-
To deploy a fully functional application to a cluster and see the SDKs in action, follow the [Tutorial: Develop an edge app with Azure IoT Operations SDKs for efficient data handling](tutorial-develop-edge-app.md).
93
-
94
92
## SDKs reference documentation
95
93
96
-
For documentation related to the implementation of the SDKs, it's fundamentals primitives and protocols as well as the underlying topic and payload structure used for communication over MQTT, see [SDKs reference documentation](https://github.com/Azure/iot-operations-sdks/blob/main/doc/reference/README.md).
94
+
For documentation related to the implementation of the SDKs, it's fundamentals primitives and protocols as well as the underlying topic and payload structure used for communication over MQTT, see [Azure IoT Operatios SDKs reference documentation](https://github.com/Azure/iot-operations-sdks/blob/main/doc/reference/README.md).
97
95
98
96
## Next step
99
97
100
-
Try the [Quickstart: Start developing with the Azure IoT Operations SDKs](develop-edge-apps/quickstart-get-started-sdks.md).
98
+
To deploy a fully functional application to a cluster and see the SDKs in action, follow the [Tutorial: Develop an edge app with Azure IoT Operations SDKs for efficient data handling](tutorial-develop-edge-app.md).
Copy file name to clipboardExpand all lines: articles/iot-operations/develop-edge-apps/reference-state-store-protocol.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,7 +13,7 @@ ms.date: 05/07/2025
13
13
14
14
# State store protocol
15
15
16
-
The state store is a distributed storage system within the Azure IoT Operations cluster. The state store offers the same high availability guarantees as MQTT messages in MQTT broker. According to the MQTT5/RPC protocol guidelines, clients should use MQTT5 to interact with the state store. This article provides protocol guidance for developers who need to implement their own state store clients.
16
+
The state store is a distributed storage system within the Azure IoT Operations cluster. The state store offers the same high availability guarantees as MQTT messages in MQTT broker. According to the MQTT5/RPC protocol guidelines, clients should use MQTT v5 to interact with the state store. This article provides protocol guidance for developers who need to implement their own state store clients.
17
17
18
18
## Overview
19
19
@@ -40,12 +40,12 @@ sequenceDiagram
40
40
41
41
:::image type="content" source="media/concept-about-state-store-protocol/state-store-request-response-basic.svg" alt-text="Diagram of state store basic request and response process." border="false":::
42
42
43
-
## State store system topic, QoS, and required MQTT5 properties
43
+
## State store system topic, QoS, and required MQTT v5 properties
44
44
45
45
To communicate with the state store, clients must meet the following requirements:
46
46
47
-
- Use MQTT5. For more information, see the [MQTT 5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html).
48
-
- Use QoS 1 (Quality of Service level 1). QoS 1 is described in the [MQTT 5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901236).
47
+
- Use MQTT v5. For more information, see the [MQTT v5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html).
48
+
- Use QoS 1 (Quality of Service level 1). QoS 1 is described in the [MQTT v5 specification](https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html#_Toc3901236).
49
49
- Have a clock that is within one minute of the MQTT broker's clock.
50
50
51
51
To communicate with the state store, clients must `PUBLISH` requests to the system topic `statestore/v1/FA9AE35F-2F64-47CD-9BFF-08E2B32A0FE8/command/invoke`. Because the state store is part of Azure IoT Operations, it does an implicit `SUBSCRIBE` to this topic on startup.
@@ -362,7 +362,7 @@ Clients can register with the state store to receive notifications of keys being
362
362
363
363
### KEYNOTIFY request messages
364
364
365
-
State store clients request the state store monitor a given `keyName` for changes by sending a `KEYNOTIFY` message. Just like all state store requests, clients PUBLISH a QoS1 message with this message via MQTT5 to the state store system topic `statestore/v1/FA9AE35F-2F64-47CD-9BFF-08E2B32A0FE8/command/invoke`.
365
+
State store clients request the state store monitor a given `keyName` for changes by sending a `KEYNOTIFY` message. Just like all state store requests, clients PUBLISH a QoS1 message with this message via MQTT v5 to the state store system topic `statestore/v1/FA9AE35F-2F64-47CD-9BFF-08E2B32A0FE8/command/invoke`.
0 commit comments