Yash Mayya created KAFKA-15470:
----------------------------------
Summary: Allow creating connectors in a stopped state
Key: KAFKA-15470
URL: https://issues.apache.org/jira/browse/KAFKA-15470
Project: Kafka
Issue Type: New Feature
Components: connect, KafkaConnect
Reporter: Yash Mayya
Assignee: Yash Mayya
Fix For: 3.7.0
[KIP-875: First-class offsets support in Kafka
Connect|https://cwiki.apache.org/confluence/display/KAFKA/KIP-875%3A+First-class+offsets+support+in+Kafka+Connect]
introduced a new {{STOPPED}} state for connectors along with some REST API
endpoints to retrieve and modify offsets for connectors. Currently, only
connectors that already exist can be stopped and any newly created connector
will always be in the {{RUNNING}} state initially. Allowing the creation of
connectors in a {{STOPPED}} state will facilitate multiple new use cases. One
interesting use case would be to migrate connectors from one Kafka Connect
cluster to another. Individual connector migration would be useful in a number
of scenarios such as breaking a large cluster into multiple smaller clusters
(or vice versa), moving a connector from a cluster running in one data center
to another etc. A connector migration could be achieved by using the following
sequence of steps :-
# Stop the running connector on the original Kafka Connect cluster
# Retrieve the offsets for the connector via the {{GET
/connectors/\{connector}/offsets}} endpoint
# Create the connector in a stopped state using the same configuration on the
new Kafka Connect cluster
# Alter the offsets for the connector on the new cluster via the {{PATCH
/connectors/\{connector}/offsets}} endpoint (using the offsets obtained from
the original cluster)
# Resume the connector on the new cluster and delete it on the original cluster
Another use case for creating connectors in a stopped state could be deploying
connectors as a part of a larger data pipeline before the source / sink data
system has been created or is ready for data transfer.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)