-
Notifications
You must be signed in to change notification settings - Fork 2.2k
[CosmosDB] Feature Request: Support Vert.x HTTP Client or Pluggable HTTP Client Implementation #49166
Copy link
Copy link
Open
Labels
ClientThis issue points to a problem in the data-plane of the library.This issue points to a problem in the data-plane of the library.Cosmoscustomer-reportedIssues that are reported by GitHub users external to the Azure organization.Issues that are reported by GitHub users external to the Azure organization.feature-requestThis issue requires a new behavior in the product in order be resolved.This issue requires a new behavior in the product in order be resolved.needs-team-attentionWorkflow: This issue needs attention from Azure service team or SDK teamWorkflow: This issue needs attention from Azure service team or SDK team
Metadata
Metadata
Assignees
Labels
ClientThis issue points to a problem in the data-plane of the library.This issue points to a problem in the data-plane of the library.Cosmoscustomer-reportedIssues that are reported by GitHub users external to the Azure organization.Issues that are reported by GitHub users external to the Azure organization.feature-requestThis issue requires a new behavior in the product in order be resolved.This issue requires a new behavior in the product in order be resolved.needs-team-attentionWorkflow: This issue needs attention from Azure service team or SDK teamWorkflow: This issue needs attention from Azure service team or SDK team
Type
Fields
Give feedbackNo fields configured for issues without a type.
Is your feature request related to a problem? Please describe.
The Azure CosmosDB SDK currently hardcodes the use of reactor-netty HTTP client in its implementation (see ReactorNettyClient.java (https://github.com/Azure/azure-sdk-for-java/blob/main/sdk/cosmos/azure-cosmos/src/main/java/com/azure/cosmos/implementation/http/ReactorNettyClient.java). This creates compatibility issues when using CosmosDB in environments like Quarkus/GraalVM native image, where Vert.x is the preferred HTTP client.
Current situation:
Describe the solution you'd like
Option 1 (preferred): support Vert.x HTTP Client
Option 2: Make HTTP Client Implementation Pluggable
Similar to how other Azure SDK components work, allow users to choose between:
Describe alternatives you've considered
keep using reactor-netty exclusively is not really ideal I think because forces non-reactor frameworks to include reactor-netty and graalVM native image compatibility issues
Additional context
The Apache Camel Quarkus project is currently working to add native support for the camel-azure-cosmosdb component, but the hardcoded reactor-netty dependency is blocking this effort.
We've noticed that other Azure SDK components—including Storage, Event Hubs, Service Bus, and Key Vault—already work seamlessly in Quarkus native mode because they support azure-core-http-vertx as an alternative HTTP client implementation. Having CosmosDB support the same pluggable HTTP client pattern would enable it to integrate smoothly with these frameworks and provide a consistent experience across all Azure services in cloud-native Java applications.
issue reference: apache/camel-quarkus#2648
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