Skip to content

Commit 7a20dd7

Browse files
authored
Merge pull request #303569 from jlian/release-aio-2507
Add comprehensive WASM development guide and enhance data flow graph documentation
2 parents f7a8edd + ab568c3 commit 7a20dd7

File tree

6 files changed

+1224
-61
lines changed

6 files changed

+1224
-61
lines changed

articles/iot-operations/connect-to-cloud/howto-create-dataflow.md

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -654,6 +654,79 @@ sourceSettings:
654654

655655
To learn more, see [Understand message schemas](concept-schema-registry.md).
656656

657+
## Request disk persistence (preview)
658+
659+
Request disk persistence allows data flows to maintain state across restarts. When you enable this feature, the graph can recover processing state if connected broker restarts. This feature is useful for stateful processing scenarios where losing intermediate data would be problematic. When you enable request disk persistence, the broker persists the MQTT data, like messages in the subscriber queue, to disk. This approach ensures that your data flow's data source doesn't experience data loss during power outages or broker restarts. The broker maintains optimal performance because persistence is configured per data flow, so only the data flows that need persistence use this feature.
660+
661+
The data flow graph makes this persistence request during subscription using an MQTTv5 user property. This feature only works when:
662+
663+
- The data flow uses the MQTT broker or asset as source
664+
- The MQTT broker has persistence enabled with dynamic persistence mode set to `Enabled` for the data type, like subscriber queues
665+
666+
This configuration allows MQTT clients like data flows to request disk persistence for their subscriptions using MQTTv5 user properties. For detailed MQTT broker persistence configuration, see [Configure MQTT broker persistence](../manage-mqtt-broker/howto-broker-persistence.md).
667+
668+
The setting accepts `Enabled` or `Disabled`, with `Disabled` as the default.
669+
670+
# [Operations experience](#tab/portal)
671+
672+
When creating or editing a data flow, select **Edit**, then check **Yes** next to **Request data persistence**.
673+
674+
# [Azure CLI](#tab/cli)
675+
676+
Add the `requestDiskPersistence` property to your data flow configuration file:
677+
678+
```json
679+
{
680+
"mode": "Enabled",
681+
"requestDiskPersistence": "Enabled",
682+
"operations": [
683+
// ... your data flow operations
684+
]
685+
}
686+
```
687+
688+
# [Bicep](#tab/bicep)
689+
690+
Add the `requestDiskPersistence` property to your data flow resource. The API version is `2025-07-01-preview` or later:
691+
692+
```bicep
693+
resource dataflow 'Microsoft.IoTOperations/instances/dataflowProfiles/dataflows@2025-07-01-preview' = {
694+
parent: defaultDataflowProfile
695+
name: dataflowName
696+
extendedLocation: {
697+
name: customLocation.id
698+
type: 'CustomLocation'
699+
}
700+
properties: {
701+
mode: 'Enabled'
702+
requestDiskPersistence: 'Enabled'
703+
operations: [
704+
// ... your data flow operations
705+
]
706+
}
707+
}
708+
```
709+
710+
# [Kubernetes (preview)](#tab/kubernetes)
711+
712+
Add the `requestDiskPersistence` property to your data flow spec. The API version is `connectivity.iotoperations.azure.com/v1beta1` or later:
713+
714+
```yaml
715+
apiVersion: connectivity.iotoperations.azure.com/v1beta1
716+
kind: Dataflow
717+
metadata:
718+
name: <DATAFLOW_NAME>
719+
namespace: azure-iot-operations
720+
spec:
721+
profileRef: default
722+
mode: Enabled
723+
requestDiskPersistence: Enabled
724+
operations:
725+
# ... your data flow operations
726+
```
727+
728+
---
729+
657730
## Transformation
658731

659732
The transformation operation is where you can transform the data from the source before you send it to the destination. Transformations are optional. If you don't need to make changes to the data, don't include the transformation operation in the data flow configuration. Multiple transformations are chained together in stages regardless of the order in which they're specified in the configuration. The order of the stages is always:

0 commit comments

Comments
 (0)