Azure / azure-sdk-for-java

This repository is for active development of the Azure SDK for Java. For consumers of the SDK we recommend visiting our public developer docs at https://docs.microsoft.com/java/azure/ or our versioned developer docs at https://azure.github.io/azure-sdk-for-java.
MIT License
2.35k stars 1.99k forks source link

[FEATURE REQ] Enhance developer experience: provide comparison and guidance about the flavors of SDK available #29752

Closed madossan01 closed 4 months ago

madossan01 commented 2 years ago

Is your feature request related to a problem? Please describe.

At the beginning of a Java Spring boot application development with Service Bus, a developer needs to choose the SDK to use. With the sort of SDK flavors available it is hard to choose one without having samples and documentation exploring the benefits and limitations of each option. It is also likely possible someone will not have enough time to test all of them within a project.

Describe the solution you'd like Enhance experience when exploring samples and documentation: add information about the different SDKs available - which one to use/when, limitations and highlights.
Also, please include information about the difference between azure-service-bus and spring-cloud-azure-starter-servicebus-jms libraries.

Describe alternatives you've considered Java developers spiking on each option, as needed, and use communities to share the findings. This alternative may lead to non-curated information.

Additional context N/A

Information Checklist Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

joshfree commented 2 years ago

@yiliuTo could you please follow up with @madossan01

saragluna commented 2 years ago

Thanks for filing this issue, and we do provide several options when users want to use Service Bus.

The function differences between these libraries are: Library Authentication Support Batching Support Sessions Support Auto Lock Renewal Error Handling
Azure Service Bus SDK Connection String, Service Principal, Managed Identity Yes Yes Yes Service Bus Exceptions
JMS API Connection String No No No JMS Exceptions
Spring Cloud Stream Binder for Service Bus Connection String, Service Principal, Managed Identity No Yes Yes Spring Messaging Exceptions
There are also some differences when talk about how Spring supports them: Library Spring framework's support Spring Cloud Azure's support
Azure Service Bus SDK None spring-cloud-azure-starter-servicebus is a spring starter helping configuring the Service Bus SDK clients.
JMS API spring-jms provides JmsTemplate and @JmsListener for users to pub/sub messages using Spring's programming model spring-cloud-azure-starter-servicebus-jms is a spring starter helping configuring the spring-jms with Azure Service Bus
Spring Cloud Stream Binder for Service Bus None spring-cloud-azure-stream-binder-servicebus is a binder library for Azure Service Bus.

Samples for how to use these Spring libraries can be found:

Reference doc for how to use these Spring libraries can be found:

JorgeCupiV commented 2 years ago

@saragluna this is an awesome reference table! Is this somewhere in the official documentation? I don't recall seeing it before and its pretty self explanatory on when/how to use which flavor available

saragluna commented 2 years ago

Hi @JorgeCupiV, no, we don't have it in the official documentation yet, @stliu do you think we should have an official doc for it?

JorgeCupiV commented 2 years ago

Hi @JorgeCupiV, no, we don't have it in the official documentation yet, @stliu do you think we should have an official doc for it?

I think so, yes. It would save developers precious time to get to decide which SDK / library to use

JorgeCupiV commented 2 years ago

Hey @saragluna and @stliu, hope you are doing fine. Just double checking with you to see if you have considered to include this comparison table at official documentation.

saragluna commented 2 years ago

Hi @JorgeCupiV, @stliu is on vacation now and we'll discuss this when he is back.

saragluna commented 2 years ago

Hi @JorgeCupiV, @stliu and I discussed this and we surely want to provide such doc. But since we have many other feature requests on hand and lack resources, we would like to consider this feature request next semester.

JorgeCupiV commented 2 years ago

I see, thanks @saragluna. If there's anything I can do on my side to help with the review or creation of said table I would love to contribute

stliu commented 1 year ago

we have a doc pattern for this kind of doc

github-actions[bot] commented 4 months ago

Hi @madossan01, we deeply appreciate your input into this project. Regrettably, this issue has remained unresolved for over 2 years and inactive for 30 days, leading us to the decision to close it. We've implemented this policy to maintain the relevance of our issue queue and facilitate easier navigation for new contributors. If you still believe this topic requires attention, please feel free to create a new issue, referencing this one. Thank you for your understanding and ongoing support.