github dapr/dapr v1.1.2
Dapr Runtime v1.1.2

latest releases: v1.13.2, v1.13.2-rc.1, v1.13.1...
3 years ago

Dapr 1.1.2

Fixes

  • Improvements to Asure Service Bus component behavior under throttling (#3047)

Overview

If you are not using the Azure Service Bus pubsub component, you do not need to upgrade to 1.1.2. If you are using this component, please read on.

We received a report of excess errors under load when publishing messages to the Azure Service Bus. With some investigation and a successfull reproduction, we determined that if the upstream Azure Service Bus throttles a request, the upstream Azure Service Bus client go library would close the connection and any outstanding publish operations will fail with an error. Workloads with publication bursts on the order of thousands of messages per second can trigger rate limiting in the upstream service and thus experience failed publish attempts.

This patch release address this condition in two ways:

  1. The Azure Service Bus pubsub component will now retry with exponential backoff by default. This allows bursty traffic a chance to recover a deliver succesfully during the next rate limit window.

  2. While diagnosing this issue, we also discovered an exteraneous API call being made in line with every publish request. This API call counts towards the total upstream service throttling limit, so removing it allows Dapr users to publish more messages before hitting the throttling limit.

Big thanks to @javageek79 for bringing this to our attention, and to @pkedy for root cause analysis and patch.

Don't miss a new dapr release

NewReleases is sending notifications on new releases.