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

Extensions to OpenSearch communication #34

Open
peternied opened this issue Jul 6, 2022 · 3 comments
Open

Extensions to OpenSearch communication #34

peternied opened this issue Jul 6, 2022 · 3 comments
Labels
enhancement New feature or request

Comments

@peternied
Copy link
Member

Through use of the transport service OpenSearch and the extension share java objects. This is the established mechanism for communication between nodes is an OpenSearch cluster. This design has trade-offs that we might want to consider switching to a REST based model.

Advantages for REST model:

  • Implementing REST APIs is a common practice is all modern languages, there are a wealth of tools and libraries available.
  • REST API requests can use common http conventions in headers for communicating meta information (Such as status codes, auth, proxy).
  • OpenSearch already can expose REST APIs that are used by existing plugins.

Areas to consider before switching:

  • Performance impact to using a different protocol
  • Functionality within the transport service that would not translate to REST responses
@dbwiddis
Copy link
Member

dbwiddis commented Jul 8, 2022

You barely mention "auth" in advantage bullet 2, but the fact that REST and OAuth2 work together seamlessly is a huge advantage.

Disadvantage is we have to implement our own security on top of REST but that is a well-understood problem.

If we select this route (I vote yes) we should immediately establish documentation of the REST API and coding standards for updating it with any API functionality change (which will be frequent as new features are added). We should look into options for doing that automatically, e.g., Swagger.

@peternied
Copy link
Member Author

@dbwiddis did you have a function/code path in mind that we could start with?

@minalsha minalsha added the enhancement New feature or request label Aug 2, 2022
@dblock
Copy link
Member

dblock commented Aug 10, 2022

Keep in mind that transports should be switchable. An extension that needs to exchange a lot of data may want to do something highly optimized. No strong feelings on what the default should be, or whether v1 should have more than one transport implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants