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

Compatibility shim library #127

Open
C0urante opened this issue Sep 29, 2022 · 0 comments
Open

Compatibility shim library #127

C0urante opened this issue Sep 29, 2022 · 0 comments

Comments

@C0urante
Copy link
Contributor

It's difficult to determine whether some features of the Kafka Connect API are supported by the runtime into which a plugin (e.g., connector, converter, etc.) is deployed. Some features can be detected implicitly based on which methods the runtime invokes on the plugin (such as whether SinkTask::preCommit or SinkTask::flush is invoked), and others can be detected by catching runtime classloading errors (such as those thrown by SinkTaskContext::errantRecordReporter).

This is both inconvenient (catching classloading errors is never fun) and limiting (it's impossible to leverage interfaces introduced in newer APIs with default implementations that make sense in the absence of support for that feature by the Kafka Connect runtime, and there are limited options for when exactly support or lack of support for a given feature can be determined).

We can implement a compatibility shim library that eases some of these pain points and covers up some of the uglier bits for connector developers who want to access newer features in their connectors without sacrificing compatibility with older versions of Kafka Connect.

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

No branches or pull requests

1 participant