Skip to content
This repository was archived by the owner on Aug 3, 2024. It is now read-only.

Move from WindowsAzure.ServiceBus to Azure.Messaging.ServiceBus#412

Merged
joelverhagen merged 11 commits intomainfrom
jver-sb
Sep 21, 2023
Merged

Move from WindowsAzure.ServiceBus to Azure.Messaging.ServiceBus#412
joelverhagen merged 11 commits intomainfrom
jver-sb

Conversation

@joelverhagen
Copy link
Copy Markdown
Member

@joelverhagen joelverhagen commented Sep 6, 2023

Address https://github.com/NuGet/Engineering/issues/5011

Summary of changes:

  1. Remove WindowsAzure.ServiceBus dependency, add Azure.Messaging.ServiceBus dependency
  2. Introduce IReceivedBrokeredMessage. This mirrors a similar split in the send and receive message models in the new SDK.
    • This is a better data model IMO since some things are immutable on received messages and the models can express that.
  3. Add several shim-behaviors, to ensure full back-compat
    • Generate a random message ID on the client side (new SDK doesn't so this, partitioned topics require this)
    • Add support for sb://namespace/ style connection strings (old SDK supports it, new SDK does not)
    • Serialize message content using XML data contract. I dislike this but we must do this to handle messages sent by old SDK

Testing strategy:

  1. Full deployment to DEV
    • Gallery, internal jobs, OSS jobs
    • Test send-receive compat (sender on new SDK, receiver on old SDK and vice versa)
    • Push steady stream of validations and reboot VMs (non-graceful message handling)
  2. Full deployment in INT
  3. PROD strategy:
    • Deploy single region of SB listeners and observe telemetry
    • Wait 48 hours
    • Deploy 2nd region of SB listeners
    • Wait 24 hours
    • Deploy gallery

@joelverhagen joelverhagen requested a review from a team as a code owner September 6, 2023 20:19
@joelverhagen joelverhagen changed the title Move Move from WindowsAzure.ServiceBus to Azure.Messaging.ServiceBus Sep 6, 2023
mariaghiondea
mariaghiondea previously approved these changes Sep 6, 2023
Copy link
Copy Markdown

@mariaghiondea mariaghiondea left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the work on this one!
Anything that we can do to prevent regressions, especially anything that would come up at runtime?

@joelverhagen
Copy link
Copy Markdown
Member Author

joelverhagen commented Sep 6, 2023

Thank you for the work on this one! Anything that we can do to prevent regressions, especially anything that would come up at runtime?

I've updated the PR description with details. In short: full deployment of all SB-interacting component in DEV/INT prior to PROD (as expected) and a careful deployment in PROD where we move listeners slowly and services (i.e. senders = gallery) later.

Comment thread src/NuGet.Services.ServiceBus/OnMessageOptionsWrapper.cs Outdated
agr
agr previously approved these changes Sep 9, 2023
Copy link
Copy Markdown
Contributor

@agr agr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Feel free to ignore my comments, nothing important there.

@joelverhagen joelverhagen dismissed stale reviews from mariaghiondea and agr via 78754e0 September 19, 2023 18:50
@joelverhagen joelverhagen merged commit b4bce36 into main Sep 21, 2023
@joelverhagen joelverhagen deleted the jver-sb branch September 21, 2023 01:03
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants