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: Upgrade plugin in an existing pipeline #1929

Closed
lovromazgon opened this issue Oct 24, 2024 · 0 comments · Fixed by #1938
Closed

Feature: Upgrade plugin in an existing pipeline #1929

lovromazgon opened this issue Oct 24, 2024 · 0 comments · Fixed by #1938
Assignees
Labels
feature New feature or request

Comments

@lovromazgon
Copy link
Member

Feature description

This could almost be categorized as a bug. Currently, Conduit is very strict about the changes that are allowed to be made on a pipeline, for instance, it is not allowed to update the connector plugin reference. The REST and gRPC APIs don't support updating the field at all, while in a pipeline configuration file a change of the plugin causes Conduit to delete the existing connector and create a new one with the new plugin. This results in the existing position being lost, so the connector will start from scratch and not resume from where it left off.

We initially implemented it this way, to prevent users from changing the plugin (e.g. from kafka to postgres) and then starting the pipeline with the new plugin using the state (position) from the old plugin. Because of that, we now don't have a clear path to going from one pinned version of the connector to another (e.g. from [email protected] to [email protected]) or from one plugin type to another (e.g. from builtin:kafka to standalone:kafka).

That said, we should also consider the use case of actually changing the entire plugin. Imagine having a community fork of the Postgres connector, let's call it postgres-community. Somebody running an existing pipeline using the postgres connector should ideally be able to switch to the postgres-community connector without losing the state (assuming the fork still stores the position in the same format).

If we allow users to update the plugin, it would probably be good to log a warning that the pipeline may not work correctly if the new connector is not compatible with the previous one. This would hopefully inform the user about what's going on in case the new connector actually fails to start. This could happen when the new connector contains a breaking change or the user moved between two unrelated connectors (e.g. from kafka to postgres).

Note

Note that everything written above about connectors applies to processors as well.

@lovromazgon lovromazgon added feature New feature or request triage Needs to be triaged labels Oct 24, 2024
@lovromazgon lovromazgon moved this from Triage to Todo in Conduit Main Oct 28, 2024
@lovromazgon lovromazgon removed the triage Needs to be triaged label Oct 28, 2024
@hariso hariso self-assigned this Nov 1, 2024
@github-project-automation github-project-automation bot moved this from In Review to Done in Conduit Main Nov 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature New feature or request
Projects
Status: Done
Development

Successfully merging a pull request may close this issue.

2 participants