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
Add support for AstraDB #40554
Add support for AstraDB #40554
Conversation
edd410c
to
374748d
Compare
Provides autoconfigure properties for the additional AstraDB options to make a successful cql connection.
374748d
to
b25831d
Compare
Thanks for the proposal. Please note that as this would be a new feature it cannot be added to a 3.2.x maintenance release. The earliest that it could be added would now be Spring Boot 3.4 as we've just started the RC phase for 3.3 and the feature set is frozen. If we want a configuration property for the cloud secure connect bundle then, rather than introducing new |
This is your decision, but it's a trivial addition… 🤷
It can't be part of the existing Cassandra connections. This only works with AstraDB. AstraDB is CQL compatible with Cassandra, but not vice versa. I've no objection to putting the classes into the |
Generally speaking, when naming and structuring properties, we try to take our lead from the names and structure of the API that the properties are configuring. In this case the Astra-specific |
Putting it alongside the other cassandra options would be very confusing (and likely create errors) for cassandra users. It would be like putting new ElasticSearch properties into the OpenSearch space, that did not work with OpenSearch. Sure way to piss off the OpenSearch people. How does spring-boot deal with different sql driver specifics, are they in one place or separated out to their dialects/DBs ? 🤷 |
Then why has the API of What I'm trying to understand is why the structure of our properties should different from the structure of the API in the Cassandra Driver's Java API. |
The secureConnectBundle works as part of existing cql connections and drivers, for just astra. This information does go into the
The java-driver was only recently donated to the ASF. When it was at DataStax then proprietary features like this could be put directly into it. Now it's at the ASF these features will be removed over time – and then you'll see a I'd envision this would eventuate as a number of things from the Such a transition takes time, and is dependant on the community… |
Given this fact, I think we should hold off on adding direct support to Spring Boot at this time. It looks like the existing I think we should consider adding support when the Thanks anyway for the PR @michaelsembwever |
That could be years away. Currently this feature is documented here: For example, others may adopt this approach to DBaaS connections and then it would stay. For a user example, take a look at this codebase in action here: https://github.com/datastax/ai-agent-java With the application.properties it is very easy to switch from using Apache Cassandra to using AstraDB, just by adding a few properties. This interoperability is desired, and supports OSS work. This layout of property name spaces makes sense to me. The last line could also easily be
But this would be weird
And this would be weird, because astra users are entirely aware of the base cql standard they are working on top of…
Trying to grok what the spring-boot team wants here, the best I think works is…
|
autoconfigure properties for a CassandraVectorStore cql connection to AstraDB