From 1310f3ea45a72ac80eacba0e6dec738e71dd53f2 Mon Sep 17 00:00:00 2001 From: Artur Souza Date: Tue, 14 Jun 2022 10:30:03 -0700 Subject: [PATCH] Actor reminder partition as stable feature. (#2517) * Actor reminder partition as stable feature. Signed-off-by: Artur Souza * Update PostgreSQL status (#2522) Signed-off-by: Yaron Schneider Signed-off-by: Artur Souza * Update daprdocs/content/en/operations/support/support-preview-features.md Co-authored-by: Mark Fussell Signed-off-by: Artur Souza * Add dead letter topics info (#2500) * Add dead letter topics info Signed-off-by: yaron2 * fix typo Signed-off-by: yaron2 * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * change dlt name Signed-off-by: yaron2 * rephrase Signed-off-by: yaron2 * rephrase Signed-off-by: yaron2 * add pub/sub overview section Signed-off-by: yaron2 * change weight Signed-off-by: yaron2 * fix url Signed-off-by: yaron2 * fix url Signed-off-by: yaron2 * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-deadletter.md Co-authored-by: Mark Fussell * Update daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-overview.md Co-authored-by: Mark Fussell * typo Signed-off-by: yaron2 * add diagram Signed-off-by: yaron2 Co-authored-by: Mark Fussell Signed-off-by: Artur Souza * Updated pubsub.rabbitmq docs (#2515) Added publisherConfirms. See dapr/components-contrib#1762 Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com> Co-authored-by: Mark Fussell Signed-off-by: Artur Souza * Update daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md Co-authored-by: Mark Fussell Signed-off-by: Artur Souza Co-authored-by: Yaron Schneider Co-authored-by: Mark Fussell Co-authored-by: Alessandro (Ale) Segala <43508+ItalyPaleAle@users.noreply.github.com> --- .../building-blocks/actors/howto-actors.md | 26 +++---------------- .../support/support-preview-features.md | 4 +-- 2 files changed, 5 insertions(+), 25 deletions(-) diff --git a/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md b/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md index b3153bb5d3f..f202be870ae 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md +++ b/daprdocs/content/en/developing-applications/building-blocks/actors/howto-actors.md @@ -315,24 +315,9 @@ Since version 1.3, applications can now enable partitioning of actor reminders i If the number of partitions is not enough, it can be changed and Dapr's sidecar will automatically redistribute the reminders's set. ### Enabling actor reminders partitioning -Actor reminders partitioning is currently in preview, so enabling it is a two step process. - -#### Preview feature configuration -Before using reminders partitioning, actor type metadata must be enabled in Dapr. For more information on preview configurations, see [the full guide on opting into preview features in Dapr]({{< ref preview-features.md >}}). Below is an example of the configuration: - -```yaml -apiVersion: dapr.io/v1alpha1 -kind: Configuration -metadata: - name: myconfig -spec: - features: - - name: Actor.TypeMetadata - enabled: true -``` -#### Actor runtime configuration -Once actor type metadata is enabled as an opt-in preview feature, the actor runtime must also provide the appropriate configuration to partition actor reminders. This is done by the actor's endpoint for `GET /dapr/config`, similar to other actor configuration elements. +#### Actor runtime configuration for actor reminders partitioning +First, the actor runtime must provide the appropriate configuration to partition actor reminders. This is done by the actor's endpoint for `GET /dapr/config`, similar to other actor configuration elements. {{< tabs Java Dotnet Python Go >}} @@ -428,10 +413,7 @@ The following, is an example of a valid configuration for reminder partitioning: ``` #### Handling configuration changes -For production scenarios, there are some points to be considered before enabling this feature: - -* Enabling actor type metadata can only be reverted if the number of partitions remains zero, otherwise the reminders' set will be reverted to an previous state. -* Number of partitions can only be increased and not decreased. This allows Dapr to automatically redistribute the data on a rolling restart where one or more partition configurations might be active. +To configure actor reminders partitioning, Dapr persists the actor type metadata in the actor's state store. This allows the configuration changes to be applied globally and not only in a single sidecar instance. Also the **number of partitions can only be increased and not decreased**. This allows Dapr to automatically redistribute the data on a rolling restart where one or more partition configurations might be active. #### Demo -* [Actor reminder partitioning community call video](https://youtu.be/ZwFOEUYe1WA?t=1493) \ No newline at end of file +* [Actor reminder partitioning presented in community call](https://youtu.be/ZwFOEUYe1WA?t=1493) \ No newline at end of file diff --git a/daprdocs/content/en/operations/support/support-preview-features.md b/daprdocs/content/en/operations/support/support-preview-features.md index a789b477277..88a918d0ad5 100644 --- a/daprdocs/content/en/operations/support/support-preview-features.md +++ b/daprdocs/content/en/operations/support/support-preview-features.md @@ -15,9 +15,7 @@ For CLI there is no explicit opt-in, just the version that this was first made a ## Current preview features | Feature | Description | Setting | Documentation | Version introduced | | ---------- |-------------|---------|---------------|-----------------| -| **Partition actor reminders** | Allows actor reminders to be partitioned across multiple keys in the underlying statestore in order to improve scale and performance. | `Actor.TypeMetadata` | [How-To: Partition Actor Reminders]({{< ref "howto-actors.md#partitioning-reminders" >}}) | v1.4 | -| **Pub/Sub routing** | Allow the use of expressions to route cloud events to different URIs/paths and event handlers in your application. | `PubSub.Routing` | [How-To: Publish a message and subscribe to a topic]({{}}) | v1.7 | -| **ARM64 Mac Support** | Dapr CLI, sidecar, and Dashboard are now natively compiled for ARM64 Macs, along with Dapr CLI installation via Homebrew. | N/A | [Install the Dapr CLI]({{}}) | v1.5 | +| **Pub/Sub routing** | Allow the use of expressions to route cloud events to different URIs/paths and event handlers in your application. | `PubSub.Routing` | [How-To: Publish a message and subscribe to a topic]({{}}) | v1.4 | | **--image-registry** flag with Dapr CLI| In self hosted mode you can set this flag to specify any private registry to pull the container images required to install Dapr| N/A | [init CLI command reference]({{}}) | v1.7 | | **Resiliency** | Allows configuring of fine-grained policies for retries, timeouts and circuitbreaking. | `Resiliency` | [Configure Resiliency Policies]({{}}) | | **Service invocation without default `content-type`** | When enabled removes the default service invocation content-type header value `application/json` when no content-type is provided. This will become the default behavior in release v1.9.0. This requires you to explictly set content-type headers where required for your apps. | `ServiceInvocation.NoDefaultContentType` | [Service Invocation]({{}}) | v1.7 |