Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Uber work item] Prefetch Reliability #33688

Closed
conniey opened this issue Feb 23, 2023 · 5 comments
Closed

[Uber work item] Prefetch Reliability #33688

conniey opened this issue Feb 23, 2023 · 5 comments
Assignees
Labels
amqp Label for tracking issues related to AMQP Client This issue points to a problem in the data-plane of the library. Service Bus

Comments

@conniey
Copy link
Member

conniey commented Feb 23, 2023

No description provided.

@ghost ghost added the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label Feb 23, 2023
@anuchandy
Copy link
Member

anuchandy commented Feb 24, 2023

This is the uber work item, which depends on the following -

Migration plan

#34298

Amqp-Core (must-have)

#33700
#33701
#33682

ServiceBus (must-have)

#30930
#33704
#33705
#33706
#33707

ServiceBus (nice-to-have)

#33710 (extension of 33707)

Work-item dependencies

WorkItem_Dependency

[Note: Originally this ticket was titled "Deprecate service bus legacy SDK (a.k.a track1)", but given the common goal of individual work items is to make the prefetch more reliable, the title has been updated to Prefetch Reliability"]

@joshfree joshfree added Service Bus Client This issue points to a problem in the data-plane of the library. labels Feb 24, 2023
@ghost ghost removed the needs-triage Workflow: This is a new issue that needs to be triaged to the appropriate team. label Feb 24, 2023
@anuchandy anuchandy added the amqp Label for tracking issues related to AMQP label Feb 24, 2023
@anuchandy anuchandy changed the title Deprecate service bus legacy sdk Prefetch Reliability Apr 1, 2023
@anuchandy anuchandy changed the title Prefetch Reliability [Uber work item] Prefetch Reliability Apr 1, 2023
@anuchandy
Copy link
Member

All work items except 33706 are implemented in the PR #34854 . The wok-item 33706 (Session feature) is not planned for include in this PR and is treated as a work of its own.

@anuchandy
Copy link
Member

All work items except 33706 are implemented in the PR #34854 . The wok-item 33706 (Session feature) is not planned for include in this PR and is treated as a work of its own.

Change of plan: We are addressing the session issue (33706) as well as part of #34854

@anuchandy
Copy link
Member

anuchandy commented Nov 6, 2023

These work items are being rolled out as incremental updates. The new underlying framework with improvements is called V2-Stack. The latest beta (beta.5) version of Service Bus (and its Core AMQP dependency) includes V2-Stack with these work items incorporated.

To use the beta.5 version, add the following dependency.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-messaging-servicebus</artifactId>
    <version>7.15.0-beta.5</version>
</dependency>

The beta.5 composes both the previous generation of stack (The stack GA versions are using) and the new V2-Stack. Some of the features by default use V2-Stack, while other features require V2-Stack opt-in. The opt-in or opt-out of a specific Stack (V2 vs previous generation) for a feature is accomplished by providing com.azure.core.util.Configuration object at the time of building the Client object.

For example, V2-Stack based Session Receive with ProcessorClient requires opt-in as shown below –

ServiceBusProcessorClient sessionProcessor = new ServiceBusClientBuilder()
        .connectionString(Config.CONNECTION_STRING)
        .configuration(new com.azure.core.util.ConfigurationBuilder()
          .putProperty("com.azure.messaging.servicebus.session.processor.asyncReceive.v2", "true") // 'false' by default, opt-in if enabling V2 is desired.
          .build())
        .sessionProcessor()
        .....

The following table lists the client types, corresponding configuration names and indicate if Client is enabled by default in V2-Stack or not. For a client that is not on V2-Stack by default, the example shown above can followed to opt-in.

Client Type Configuration-Name Is on V2-Stack By default?
Sender and management Client. com.azure.messaging.servicebus.sendAndManageRules.v2 YES
Non-Session Processor and Reactor Receiver Client. com.azure.messaging.servicebus.nonSession.asyncReceive.v2 YES
Non-Session Synchronous Receiver Client. com.azure.messaging.servicebus.nonSession.syncReceive.v2 NO
Session Processor Receiver Client. com.azure.messaging.servicebus.session.processor.asyncReceive.v2 NO
Session Reactor Receiver Client. com.azure.messaging.servicebus.session.reactor.asyncReceive.v2 NO
Session Synchronous Receiver Client. com.azure.messaging.servicebus.session.syncReceive.v2 NO

@anuchandy
Copy link
Member

All SB client types have v2 support implemented, closing.

@github-actions github-actions bot locked and limited conversation to collaborators Jul 30, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
amqp Label for tracking issues related to AMQP Client This issue points to a problem in the data-plane of the library. Service Bus
Projects
None yet
Development

No branches or pull requests

3 participants