Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Shortly describe the system that your connector will connect to. In case there is already a connector available, please explain why you're introducing either a new one or an improvement via this FLIP. 

This source will extend the KafkaSource to be able to read from multiple Kafka clusters within a single source. 

Some of the challenging use cases that these features solve are:

  1. Transparent Kafka cluster migration without Flink job restart.
  2. Transparent Kafka topic migration without Flink job restart.
  3. Direct integration with Hybrid Source.

Public Interfaces

Please include the Flink interfaces that you will use when implementing your connector. You most likely will use one or more of these:

...

Compatibility, Deprecation, and Migration Plan

The source is opt in and would requirement users to implement code changes. It is possible for the MultiClusterKafkaSource builder to make it easier to convert, code wise.

In the same vein as the migration from FlinkKafkaConsumer and KafkaSource, the state is incompatible between KafkaSource and MultiClusterKafkaSource so we would recommend to reset all state or reset partial state by setting a different uid and starting the application from nonrestore state.



  • What impact (if any) will there be on existing users? The source is opt in and would need to be 
  • If we are changing behavior how will we phase out the older behavior?
  • If we need special migration tools, describe them here.
  • When will we remove the existing behavior?

Test Plan

Describe in few sentences how the FLIP This will be tested . We are mostly interested in system tests (since unit-tests are specific to implementation details). How will we know that the implementation works as expected? How will we know nothing broke?

Rejected Alternatives

by unit and integration tests. The work will extend existing KafkaSource test utilities in Flink to exercise multiple clusters.

Rejected Alternatives

NoneIf there are alternative ways of accomplishing the same thing, what were they? The purpose of this section is to motivate why the design is the way it is and not some other way.