-
Notifications
You must be signed in to change notification settings - Fork 59
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
[PROPOSAL] Redesign the SDKClient #732
Comments
I am a big fan of deferring client responsibilities to opensearch-java and taking a runtime dependency on it. |
Can you be a little more specific what this means, @dblock ? Currently we don't do much with the |
I think we're saying the same thing @dbwiddis. If an extension needs to make "standard" RESTful API calls to an OpenSearch instance it should know how, but not use the code in the SDK to do it. |
What/Why
What are you proposing?
We should redesign the SDKClient from scratch, without referring to the existing client which is trying to do too many things and doing some of them poorly.
Our original vision (if we ever had one) for the SDKClient has morphed over time into an increasingly unmaintainable pile of spaghetti code. It looks like we started wanting to use it just as a wrapper for the OpenSearch Client for Java (
opensearch-java
), but then:Core capabilities we need:
client.execute()
)What users have asked for this feature?
#612, #729, #430, #616, TBD issue on serverless
What problems are you trying to solve?
Replace existing usages of NodeClient implementations in plugins, specifically
client.execute()
) internal to the extensionWhat is the developer experience going to be?
For migrating existing plugins, a minimal diff.
For developing new plugins, a set of clearly documented tools providing needed capabilities.
Why should it be built? Any reason not to?
Properly handle initialization
Properly handle resource usage/leakage
Properly handle multithreading
Permit DRY
What will it take to execute?
Re-thinking/re-scoping what the object does and does not do.
Any remaining open questions?
The text was updated successfully, but these errors were encountered: