diff --git a/daprdocs/config.toml b/daprdocs/config.toml index 5b500e5e12f..3aa6d95f85a 100644 --- a/daprdocs/config.toml +++ b/daprdocs/config.toml @@ -181,7 +181,7 @@ url_latest_version = "https://docs.dapr.io" url = "https://v1-13.docs.dapr.io" [[params.versions]] version = "v1.12 (latest)" - url = "https://docs.dapr.io" + url = "#" [[params.versions]] version = "v1.11" url = "https://v1-11.docs.dapr.io" diff --git a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md index 3961d37570d..5228b5975e3 100644 --- a/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md +++ b/daprdocs/content/en/developing-applications/building-blocks/pubsub/pubsub-bulk.md @@ -81,13 +81,13 @@ async function start() { { entryID: "entry-2", contentType: "application/cloudevents+json", - event: { + event: { specversion: "1.0", source: "/some/source", type: "example", - id: "1234", - data: "foo message 2", - datacontenttype: "text/plain" + id: "1234", + data: "foo message 2", + datacontenttype: "text/plain" }, }, { @@ -115,7 +115,7 @@ using System.Collections.Generic; using Dapr.Client; const string PubsubName = "my-pubsub-name"; -const string TopicName = "topic-a"; +const string TopicName = "topic-a"; IReadOnlyList BulkPublishData = new List() { new { Id = "17", Amount = 10m }, new { Id = "18", Amount = 20m }, @@ -130,10 +130,10 @@ if (res == null) { } if (res.FailedEntries.Count > 0) { - Console.WriteLine("Some events failed to be published!"); + Console.WriteLine("Some events failed to be published!"); foreach (var failedEntry in res.FailedEntries) { - Console.WriteLine("EntryId: " + failedEntry.Entry.EntryId + " Error message: " + + Console.WriteLine("EntryId: " + failedEntry.Entry.EntryId + " Error message: " + failedEntry.ErrorMessage); } } @@ -205,7 +205,7 @@ func main() { { "entryId": "b1f40bd6-4af2-11ed-b878-0242ac120002", "event": { - "message": "second JSON message" + "message": "second JSON message" }, "contentType": "application/json" } @@ -236,7 +236,7 @@ curl -X POST http://localhost:3500/v1.0-alpha1/publish/bulk/my-pubsub-name/topic { "entryId": "b1f40bd6-4af2-11ed-b878-0242ac120002", "event": { - "message": "second JSON message" + "message": "second JSON message" }, "contentType": "application/json" }, @@ -258,7 +258,7 @@ Invoke-RestMethod -Method Post -ContentType 'application/json' -Uri 'http://loca { "entryId": "b1f40bd6-4af2-11ed-b878-0242ac120002", "event": { - "message": "second JSON message" + "message": "second JSON message" }, "contentType": "application/json" }, @@ -271,7 +271,7 @@ Invoke-RestMethod -Method Post -ContentType 'application/json' -Uri 'http://loca ## Subscribing messages in bulk -The bulk subscribe API allows you to subscribe multiple messages from a topic in a single request. +The bulk subscribe API allows you to subscribe multiple messages from a topic in a single request. As we know from [How to: Publish & Subscribe to topics]({{< ref howto-publish-subscribe.md >}}), there are two ways to subscribe to topic(s): - **Declaratively** - subscriptions are defined in an external file. @@ -286,7 +286,7 @@ metadata: name: order-pub-sub spec: topic: orders - routes: + routes: default: /checkout pubsubname: order-pub-sub bulkSubscribe: @@ -300,11 +300,11 @@ scopes: In the example above, `bulkSubscribe` is _optional_. If you use `bulkSubscribe`, then: - `enabled` is mandatory and enables or disables bulk subscriptions on this topic -- You can optionally configure the max number of messages (`maxMessagesCount`) delivered in a bulk message. -Default value of `maxMessagesCount` for components not supporting bulk subscribe is 100 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). +- You can optionally configure the max number of messages (`maxMessagesCount`) delivered in a bulk message. +Default value of `maxMessagesCount` for components not supporting bulk subscribe is 100 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). If a component supports bulk subscribe, then default value for this parameter can be found in that component doc. - You can optionally provide the max duration to wait (`maxAwaitDurationMs`) before a bulk message is sent to the app. -Default value of `maxAwaitDurationMs` for components not supporting bulk subscribe is 1000 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). +Default value of `maxAwaitDurationMs` for components not supporting bulk subscribe is 1000 i.e. for default bulk events between App and Dapr. Please refer [How components handle publishing and subscribing to bulk messages]({{< ref pubsub-bulk >}}). If a component supports bulk subscribe, then default value for this parameter can be found in that component doc. The application receives an `EntryId` associated with each entry (individual message) in the bulk message. This `EntryId` must be used by the app to communicate the status of that particular entry. If the app fails to notify on an `EntryId` status, it's considered a `RETRY`. @@ -313,16 +313,16 @@ A JSON-encoded payload body with the processing status against each entry needs ```json { - "statuses": - [ + "statuses": + [ { "entryId": "", "status": "" - }, + }, { "entryId": "", "status": "" - } + } ] } ``` @@ -477,37 +477,21 @@ For event publish/subscribe, two kinds of network transfers are involved. 1. From/To *App* To/From *Dapr*. 1. From/To *Dapr* To/From *Pubsub Broker*. -These are the opportunities where optimization is possible. When optimized, a Bulk requests are, which reduce number of overall calls and thus increase throughput and provide better latency. +These are the opportunities where optimization is possible. When optimized, Bulk requests are made, which reduce the overall number of calls and thus increases throughput and provides better latency. On enabling Bulk Publish and/or Bulk Subscribe, the communication between the App and Dapr sidecar (Point 1 above) is optimized for **all components**. -Optimization from Dapr sidecar to the pub/sub broker would depend on a number of factors, for example: -- If the broker inherently supports Bulk pub/sub -- If the Dapr component is updated to support the use of bulk APIs provided by the broker. +Optimization from Dapr sidecar to the pub/sub broker depends on a number of factors, for example: +- Broker must inherently support Bulk pub/sub +- The Dapr component must be updated to support the use of bulk APIs provided by the broker Currently, the following components are updated to support this level of optimization: - - - - - - - - - - - - - - - - - - - - - -
ComponentBulk PublishBulk Subscribe
KafkaYesYes
Azure ServicebusYesYes
Azure EventhubsYesYes
+ +| Component | Bulk Publish | Bulk Subscribe | +|:--------------------:|:--------:|--------| +| Kafka | Yes | Yes | +| Azure Servicebus | Yes | Yes | +| Azure Eventhubs | Yes | Yes | ## Demos diff --git a/daprdocs/content/en/operations/support/support-release-policy.md b/daprdocs/content/en/operations/support/support-release-policy.md index 8dd71a45723..32ee3f1e7bf 100644 --- a/daprdocs/content/en/operations/support/support-release-policy.md +++ b/daprdocs/content/en/operations/support/support-release-policy.md @@ -45,7 +45,7 @@ The table below shows the versions of Dapr releases that have been tested togeth | Release date | Runtime | CLI | SDKs | Dashboard | Status | Release notes | |--------------------|:--------:|:--------|---------|---------|---------|------------| -| October 11th 2023 | 1.12.0
| 1.12.0 | Java 1.10.0
Go 1.9.0
PHP 1.1.0
Python 1.11.0
.NET 1.12.0
JS 3.1.2 | 0.13.0 | Supported (current) | [v1.12.0 release notes](https://github.com/dapr/dapr/releases/tag/v1.12.0) | +| October 11th 2023 | 1.12.0
| 1.12.0 | Java 1.10.0
Go 1.9.0
PHP 1.1.0
Python 1.11.0
.NET 1.12.0
JS 3.1.2 | 0.14.0 | Supported (current) | [v1.12.0 release notes](https://github.com/dapr/dapr/releases/tag/v1.12.0) | | August 31st 2023 | 1.11.3
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.3 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.3) | | July 20th 2023 | 1.11.2
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.2 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.2) | | June 22nd 2023 | 1.11.1
| 1.11.0 | Java 1.9.0
Go 1.8.0
PHP 1.1.0
Python 1.10.0
.NET 1.11.0
JS 3.1.0 | 0.13.0 | Supported | [v1.11.1 release notes](https://github.com/dapr/dapr/releases/tag/v1.11.1) | @@ -60,12 +60,12 @@ The table below shows the versions of Dapr releases that have been tested togeth | February 24 2023 | 1.10.2
| 1.10.0 | Java 1.8.0
Go 1.6.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 2.5.0 | 0.11.0 | Supported | | | February 20 2023 | 1.10.1
| 1.10.0 | Java 1.8.0
Go 1.6.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 2.5.0 | 0.11.0 | Supported | | | February 14 2023 | 1.10.0
| 1.10.0 | Java 1.8.0
Go 1.6.0
PHP 1.1.0
Python 1.9.0
.NET 1.10.0
JS 2.5.0 | 0.11.0 | Supported| | -| December 2nd 2022 | 1.9.5
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Supported | | -| November 17th 2022 | 1.9.4
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Supported | | -| November 4th 2022 | 1.9.3
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Supported | | -| November 1st 2022 | 1.9.2
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.1
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Supported | | -| October 26th 2022 | 1.9.1
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.1
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Supported | | -| October 13th 2022 | 1.9.0
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Supported | | +| December 2nd 2022 | 1.9.5
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Unsupported | | +| November 17th 2022 | 1.9.4
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Unsupported | | +| November 4th 2022 | 1.9.3
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Unsupported | | +| November 1st 2022 | 1.9.2
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.1
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Unsupported | | +| October 26th 2022 | 1.9.1
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.1
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Unsupported | | +| October 13th 2022 | 1.9.0
| 1.9.1 | Java 1.7.0
Go 1.6.0
PHP 1.1.0
Python 1.8.3
.NET 1.9.0
JS 2.4.2 | 0.11.0 | Unsupported | | | October 26th 2022 | 1.8.6
| 1.8.1 | Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0 | 0.11.0 | Unsupported | | | October 13th 2022 | 1.8.5
| 1.8.1 | Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0 | 0.11.0 | Unsupported | | | August 10th 2022 | 1.8.4
| 1.8.1 | Java 1.6.0
Go 1.5.0
PHP 1.1.0
Python 1.7.0
.NET 1.8.0
JS 2.3.0 | 0.11.0 | Unsupported | | @@ -121,9 +121,9 @@ General guidance on upgrading can be found for [self hosted mode]({{< ref self-h Dapr can support multiple hosting platforms for production. With the 1.0 release the two supported platforms are Kubernetes and physical machines. For Kubernetes upgrades see [Production guidelines on Kubernetes]({{< ref kubernetes-production.md >}}) -### Supported versions of dependencies +### Supported versions of dependencies -Below is a list of software that the latest version of Dapr (v{{% dapr-latest-version long="true" %}}) has been tested against. +Below is a list of software that the latest version of Dapr (v{{% dapr-latest-version long="true" %}}) has been tested against. | Dependency | Supported Version | |-----------------------|----------------------------------------------------------------------------------------------------------------------------------|