hlteoh37 opened a new pull request, #211:
URL: https://github.com/apache/flink-connector-aws/pull/211

   ## Purpose of the change
   
   Add support for Flink 2.0 for `flink-connector-aws`. This includes:
   1. Kinesis Source/Sink
   2. Firehose Sink
   3. DDB Streams Source
   4. DDB Table Sink
   5. SQS Sink
   
   Refactoring done to ensure compatibility with Flink 2 can be summarised 
below:
   1. **Flink public Interface changes.** Sink.InitContext has been renamed to 
WriterInitContext. ParameterTools base package has been migrated.
   **Impact:** Every Sink connector exposes Sink.InitContext as a public 
interface, because this is exposed in the method signature of the abstract 
class, AsyncSinkBase. This means a breaking change for the connectors 
repository to support Flink 2.x
   **Proposal:** I don't see a simple way to decouple the AWS repository code 
from being tied to either one of Flink 1.x and Flink 2.x. As such I suggest 
that we split the branches, aws-connector-5.x supports flink-1.20.x and 
aws-connector-6.x for flink-2.x. This means we have to maintain two active 
branches (since 1.20 is LTS), but I don't see a better way around this!
   
   2. **Removal of SinkFunction, SourceFunction interfaces.**
   **Impact:** FlinkKinesisConsumer, FlinkKinesisProducer have to be removed.
   **Proposal:** Propose that we remove the above, along with the SQL 
counterparts, as we have replacements of KinesisStreamsSource and 
KinesisStreamsSink as replacements.
   **Proposal:** E2E tests and GSR/JSON format tests currently rely on these 
interfaces, so they will need refactoring as well.
   
   3. **Removal of support for JDK 8, and JDK 17 is now the recommended Java 
version**
   **Impact/Proposal:** CI/CD can remove testing for JDK 8, and ensure we test 
against JDK 17
   
   4. **Kryo is disabled by default on Flink 2**
   **Impact/Proposal:** We should sanity check that none of the new states 
falls back to Kryo. IF there are any, we should make it such that we can use 
POJOSerializer instead of Kryo.
   
   
   ## Verifying this change
   
   This change is already covered by existing tests, such as existing unit 
tests, e2e tests.
   
   Will run manual tests for each Source/Sink against local Flink cluster and 
update here with results.
   
   ## Significant changes
   *(Please check any boxes [x] if the answer is "yes". You can first publish 
the PR and check them afterwards, for convenience.)*
   - [ ] Dependencies have been added or upgraded
   - [ ] Public API has been changed (Public API is any class annotated with 
`@Public(Evolving)`)
   - [ ] Serializers have been changed
   - [ ] New feature has been introduced
     - If yes, how is this documented? (not applicable / docs / JavaDocs / not 
documented)
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to