The documentation you are viewing is for Dapr v1.11 which is an older version of Dapr. For up-to-date documentation, see the latest version.

Preview features

List of current preview features

Preview features in Dapr are considered experimental when they are first released.

Runtime preview features require explicit opt-in in order to be used. The runtime opt-in is specified in a preview setting feature in Dapr’s application configuration. See How-To: Enable preview features for more information.

For CLI there is no explicit opt-in, just the version that this was first made available.

Current preview features

Feature Description Setting Documentation Version introduced
App Middleware Allow middleware components to be executed when making service-to-service calls N/A App Middleware v1.9
Streaming for HTTP service invocation Enables (partial) support for using streams in HTTP service invocation; see below for more details. ServiceInvocationStreaming Details v1.10
Pluggable components Allows creating self-hosted gRPC-based components written in any language that supports gRPC. The following component APIs are supported: State stores, Pub/sub, Bindings N/A Pluggable components concept v1.9
Multi-App Run Configure multiple Dapr applications from a single configuration file and run from a single command dapr run -f Multi-App Run v1.10
Workflows Author workflows as code to automate and orchestrate tasks within your application, like messaging, state management, and failure handling N/A Workflows concept v1.10
Cryptography Encrypt or decrypt data without having to manage secrets keys N/A Cryptography concept v1.11
Service invocation for non-Dapr endpoints Allow the invocation of non-Dapr endpoints by Dapr using the Service invocation API. Read “How-To: Invoke Non-Dapr Endpoints using HTTP” for more information. N/A Service invocation API v1.11
Actor State TTL Allow actors to save records to state stores with Time To Live (TTL) set to automatically clean up old data. In its current implementation, actor state with TTL may not be reflected correctly by clients, read Actor State Transactions for more information. ActorStateTTL Actor State Transactions v1.11

Streaming for HTTP service invocation

Running Dapr with the ServiceInvocationStreaming feature flag enables partial support for handling data as a stream in HTTP service invocation. This can offer improvements in performance and memory utilization when using Dapr to invoke another service using HTTP with large request or response bodies.

The table below summarizes the current state of support for streaming in HTTP service invocation in Dapr, including the impact of enabling ServiceInvocationStreaming, in the example where “app A” is invoking “app B” using Dapr. There are six steps in the data flow, with various levels of support for handling data as a stream:

Diagram showing the steps of service invocation described in the table below
Step Handles data as a stream Dapr 1.11 Dapr 1.11 with
1 Request: “App A” to “Dapr sidecar A
2 Request: “Dapr sidecar A” to “Dapr sidecar B
3 Request: “Dapr sidecar B” to “App B”
4 Response: “App B” to “Dapr sidecar B”
5 Response: “Dapr sidecar B” to “Dapr sidecar A
6 Response: “Dapr sidecar A” to “App A

Important notes:

  • ServiceInvocationStreaming needs to be applied on caller sidecars only.
    In the example above, streams are used for HTTP service invocation if ServiceInvocationStreaming is applied to the configuration of “app A” and its Dapr sidecar, regardless of whether the feature flag is enabled for “app B” and its sidecar.
  • When ServiceInvocationStreaming is enabled, you should make sure that all services your app invokes using Dapr (“app B”) are updated to Dapr 1.10 or higher, even if ServiceInvocationStreaming is not enabled for those sidecars.
    Invoking an app using Dapr 1.9 or older is still possible, but those calls may fail unless you have applied a Dapr Resiliency policy with retries enabled.

Full support for streaming for HTTP service invocation will be completed in a future Dapr version.