-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Function runtime pluggable #5463
Conversation
rerun integration tests |
1 similar comment
rerun integration tests |
@wolfstudy please help review this function runtime interface |
…tion_runtime_pluggable
@sijie @wolfstudy @merlimat please review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jerrypeng overall looks good to me. I have one concern about the configuration settings. I would like to see a smooth upgrade for the users.
@@ -328,162 +332,20 @@ public boolean getTlsEnabled() { | |||
} | |||
|
|||
|
|||
@Data |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removing configuration is usually treated as a breaking change. Can we keep the old configuration settings for one release but deprecate them? Then after a few more releases, we can remove the settings. Otherwise, it is painful for people to upgrade a cluster.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sijie I didn't remove them, I moved them down to here:
https://github.com/apache/pulsar/pull/5463/files#diff-a26c05f28ea3e67193e9ad83c63f687fR435
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is also a test to make sure BC is preserved:
https://github.com/apache/pulsar/pull/5463/files#diff-7eb172c16a86f29eeec8f23f17993cdcR829
…tion_runtime_pluggable
rerun java8 tests |
rerun integration tests |
|
rerun integration tests |
@sijie please take a look again. I have replied to your comments. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jerrypeng thank you for your clarification.
One more thought is moving the plugin to a NAR package in the future. This would make Pulsar more extensible without worrying about dependencies conflicts if people would like to develop a new runtime for Pulsar.
@sijie that is something we should definitely think about. Though I would suggest we have discussion on how to handle plugins in general in Pulsar. Perhaps we should implement or standardize on some sort of plugin loading framework. |
@jerrypeng agree. we have used NAR for functions, connectors, offloaders and protocol handlers. I think we can continue that route. |
* Allow Pulsar Function Runtimes to be pluggable * cleaning up
### Motivation In #5463, we have added the pluggable function runtime setting since 2.5.0. It is better if we can use this feature in the doc. ### Modifications Update the doc to use pluggable function runtime.
Master Issue: #4176
Motivation
Currently, Pulsar Function runtime does not expose a clean interface to make it pluggable.
Modifications
Make Pulsar Function Runtime Factory pluggable to make specifying Function Runtimes more flexible and allow the development of future runtimes to be more smooth since a complete interface is extracted
Also added additional tests, clean up of code, and BC tests