akkadotnet / Alpakka

Akka Streams Connectors - Alpakka
https://alpakka.getakka.net/
Apache License 2.0
109 stars 40 forks source link

Bump Azure.Messaging.EventHubs.Processor from 5.10.0 to 5.11.0 #1843

Closed dependabot[bot] closed 6 months ago

dependabot[bot] commented 6 months ago

Bumps Azure.Messaging.EventHubs.Processor from 5.10.0 to 5.11.0.

Release notes

Sourced from Azure.Messaging.EventHubs.Processor's releases.

Azure.Messaging.EventHubs.Processor_5.11.0

5.11.0 (2024-02-13)

Acknowledgments

Thank you to our developer community members who helped to make the Event Hubs client libraries better with their contributions to this release:

Features Added

  • Added a CheckpointPosition struct to use when updating a checkpoint. The specified position indicates that an event processor should begin reading from the next event. Added new UpdateCheckpointAsync overloads to EventProcessorClient and BlobCheckpointStore that accept the CheckpointPosition struct instead of individual values for offset and sequence number.

Breaking Changes

  • The type of several existing values in the EventData.SystemProperties collection have been changed so that they are properly represented as .NET string types. Previously, the underlying AMQP types were unintentionally returned, forcing callers to call ToString() to read the value.

    This is a behavioral breaking change that will impacts only those callers who were explicitly casting system property values to AmqpAddress or AmqpMessageId before calling ToString(). The affected system properties are:

    • MessageId
    • CorelationId
    • To
    • ReplyTo
  • The base implementations of both UpdateCheckpointAsync method overloads in PluggableCheckpointStoreEventProcessor<TPartition> and EventProcessor<TPartition> now choose sequence number over offset when writing a checkpoint and both values are provided. Previously, writing a checkpoint prioritized offset over sequence number. There is no difference in behavior for normal usage scenarios.

Bugs Fixed

  • Fixed a race condition that could lead to a synchronization primitive being double-released if IsRunning was called concurrently while starting or stopping the processor.

  • Fixed a bug in which cancellation honored by the processor was interpreted as an error surfaced by developer code and a warning was inappropriately emitted to the error handler.

  • Fixed an issue with event processor validation where an exception for quota exceeded may inappropriately be surfaced when starting the processor.

  • In the rare case that an event processor's load balancing and health monitoring task cannot recover from an error, it will now properly surrender ownership when processing stops.

Other Changes

  • A new sample that demonstrates using the EventProcessorClient with an ASP.NET hosted service is now available. (A community contribution, courtesy of davetrainer)

  • Updated the Microsoft.Azure.Amqp dependency to 2.6.4, which enables support for TLS 1.3.

  • Removed the custom sizes for the AMQP sending and receiving buffers, allowing the optimized defaults of the host platform to be used. This offers non-trivial performance increase on Linux-based platforms and a minor improvement on macOS. Windows performance remains unchanged as the default and custom buffer sizes are equivalent.

  • Improved efficiency of partition management during load balancing, reducing the number of operations performed and deferring waiting for lost partitions until the processor is stopped or the partition is reclaimed. Allocations were also non-trivially reduced.

  • Improved the approach used by the processor to manage the background tasks for partition processing and load balancing. These tasks are now marked as long-running and have improved error recovery.

  • Initialization of the load balancing task is now performed in the background and will no longer cause delays when starting the processor.

  • Loosened validation for the fully qualified namespace name passed to the processor constructor. A URI is now also accepted as a valid format. This is intended to improve the experience when using the management library, CLI, Bicep, or ARM template to create the namespace, as they return only an endpoint for the namespace. Previously, callers were responsible for parsing the endpoint and extracting the host name for use with the processor.

... (truncated)

Commits
  • a1030cb Increment package version after release of Azure.Messaging.EventHubs (#41942)
  • 925ea6c Handle error when pwsh does not exist language agnostic (#41910)
  • 6a9de22 [Event Hubs] Resolve reference issue for release (#41951)
  • 923ee55 [Event Hubs] Processor Release Prep: Feb 2024 (#41905)
  • 8f9d92e Migrate Session Recordings to the Assets Repo (#41939)
  • 88b55fd ClientModel: Move buffering into the transport (#41772)
  • a4d19fa Pass linked token to trigger execution (#41921)
  • 885767a [Event Hubs] Fix backwards compatibility with new vs old SDK checkpointing (#...
  • 9fba7b2 Use common environment for releasing (#41912)
  • a3a24ef Prepare for release (#41915)
  • Additional commits viewable in compare view


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)