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

[PROPOSAL] Separate OSS functionality from vendor specific one #229

Open
reta opened this issue Oct 1, 2024 · 4 comments
Open

[PROPOSAL] Separate OSS functionality from vendor specific one #229

reta opened this issue Oct 1, 2024 · 4 comments
Labels
discuss Issues calling for discussion enhancement New feature or request

Comments

@reta
Copy link

reta commented Oct 1, 2024

What/Why

What are you proposing?

Since the fork has happened, we are constantly facing this dilemma: which features OpenSearch has to offer out of the box? AWS by all means is in very privileged position here and there are few features that slipped in into what to be thought of vendor neutral project:

Examples:

There could be more but those I am personally aware of.

What users have asked for this feature?

They do since many OpenSearch users are AWS customers.

What problems are you trying to solve?

We should keep OpenSearch codebase vendor neutral. In practice though, vendor specific extensions are required but have to be handled differently. What could be the plan?

  • create OpenSearch-contrib organization and host all vendor (or non-core) extensions there
  • create a separate repositories for vendors (under OpenSearch-project) and move all vendor extensions there

What is the developer experience going to be?

Nothing unusual, the vendor specific extensions would be managed as regular dependencies.

Are there any security considerations?

The vendors could take care of supporting their own extensions.

Are there any breaking changes to the API

No

What is the user experience going to be?

N/A

Are there breaking changes to the User Experience?

No

Why should it be built? Any reason not to?

The vendor specific extensions incur significant overhead not only from maintenance perspective but often require the monetary spending to provision the resources in question (to fix a bug or add new features).

What will it take to execute?

I think it won't require much efforts at this point.

Any remaining open questions?

N/A

@reta
Copy link
Author

reta commented Oct 1, 2024

@dblock @AmiStrn FYI folks :)

@dblock
Copy link
Member

dblock commented Oct 1, 2024

I agree that vendor-specific extensions should be vendor-specific in principle. There are questions of whether it's ok to have code in the same repo, having releases that include that code loaded by default vs. included in the distribution, etc. I propose spelling this somewhere and opening issues for each case where we believe the principles are broken and enforcing it for anything new moving forward.

Personally, I don't mind having plugins such as repository-s3 or discovery-ec2 in OpenSearch core repo (even if I dislike bloat), or having sigv4 supported code in clients repo, as much as I don't mind support for code that supports other cloud vendors. We have enough complexity without splitting everything up. To me the runtime dependency is more important, I do not want vendor-specific runtime dependency to be dragged in by default.

@reta reta changed the title [PROPOSAL] Separate OSS functionalit from vendor specific one [PROPOSAL] Separate OSS functionality from vendor specific one Oct 1, 2024
@dblock dblock added enhancement New feature or request discuss Issues calling for discussion and removed untriaged labels Oct 21, 2024
@dblock
Copy link
Member

dblock commented Oct 21, 2024

[Catch All Triage - 1, 2]

@YANG-DB
Copy link
Member

YANG-DB commented Dec 3, 2024

@dblock @reta
I agree with the following concepts:

  • allow vendor specific code contributions in our own rep (similar to OpenTelemetry - contrib repository)
  • no direct build or runtime dependencies in these contrib components
  • add an additional abstract layer to allow the specific vendor implementation without explicitly depending on it (the next example is NOT a good separations of concerns IMO )

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

No branches or pull requests

3 participants