Details
-
Improvement
-
Status: Open
-
Not a Priority
-
Resolution: Unresolved
-
None
-
None
Description
Currently, shard discovery is done within the KinesisDataFetcher 's loop. I propose to extract that from the fetcher and encapsulate that in a separate class to separate concerns.
As can be seen in https://github.com/apache/flink/pull/3001/files#diff-0b702244caed9a73b7b3e1dc8a9cbaebR461, one downside if we do not do this refactor is apparent when adding rescalability of the Kinesis consumer. That required shards lookup operations prioir to running the fetcher, which resulted in the need to expose shard fetching logic external to the KinesisDataFetcher. This should be properly done be separating concerns of shard discovery from the fetcher.