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

[Feature Request] Plugin extensibility - gRPC #16922

Open
finnegancarroll opened this issue Dec 30, 2024 · 0 comments
Open

[Feature Request] Plugin extensibility - gRPC #16922

finnegancarroll opened this issue Dec 30, 2024 · 0 comments
Labels
enhancement Enhancement or improvement to existing feature or request Plugins untriaged

Comments

@finnegancarroll
Copy link
Contributor

Is your feature request related to a problem? Please describe

Please describe the end goal of this project

Overview

The gRPC transport server plugin should provide a clean API through which plugins may extend server functionality. Some key points of extensions include adding services to the gRPC server on startup and intercepting gRPC requests for the purposes of telemetry and observability.

Features

1. Plugin Registration Mechanism

Provide a clean API/interface for plugins to register protobuf service definitions.
Consider how to handle protobuf namespace conflicts between plugins (plugins will need to consume core protobuf definitions).

2. Interceptor Registration Mechanism

Provide a clean API/interface for plugins to register ServerInterceptor implementations. Relevant for plugins which need to intercept calls to the gRPC server for telemetry or observability purposes.

3. Error Handling & Stability

Catch and handle plugin errors from the gRPC server. Preventing plugin failures from affecting core gRPC service availability.

4. Testing & Validation

Framework for testing plugin gRPC services.
Validation of plugin protobuf definitions.

Supporting References

Experimental grpc-transport pr - #16534

Ecosystem meta issue

Related component

Plugins

Describe the solution you'd like

Node should maintain a registry of io.grpc.BindableService services which plugins are able to freely add to.
The entire registry is provided to the grpc transport plugin and service validation is performed on startup.
Compatibility errors are fatal and prevent node start.

Related component

Plugins

Describe alternatives you've considered

No response

Additional context

No response

@finnegancarroll finnegancarroll added enhancement Enhancement or improvement to existing feature or request untriaged labels Dec 30, 2024
@finnegancarroll finnegancarroll changed the title [Feature Request] Plugin extensibility [Feature Request] Plugin extensibility - gRPC Dec 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement or improvement to existing feature or request Plugins untriaged
Projects
Status: Todo
Development

No branches or pull requests

1 participant