Thanks Hongshun for starting this discussion. 

+1 from my side.

IIRC, @Jiangjie(Becket) also mentioned this in FLINK-31324 comment[1].

Best,
Leonard

[1] 
https://issues.apache.org/jira/browse/FLINK-31324?focusedCommentId=17696756&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-17696756



> 2023年11月8日 下午5:42,Hongshun Wang <loserwang1...@gmail.com> 写道:
> 
> Hi devs,
> 
> I would like to start a discussion on FLIP-389: Annotate
> SingleThreadFetcherManager and FutureCompletingBlockingQueue as
> PublicEvolving.[
> <https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278465498>
> 1].
> 
> Though the SingleThreadFetcherManager is annotated as Internal, it actually
> acts as some-degree public API, which is widely used in many connector
> projects: flink-cdc-connector
> <https://github.com/ververica/flink-cdc-connectors/blob/release-2.3.0/flink-connector-mysql-cdc/src/main/java/com/ververica/cdc/connectors/mysql/source/reader/MySqlSourceReader.java#L93>
> , flink-connector-mongodb
> <https://github.com/apache/flink-connector-mongodb/blob/main/flink-connector-mongodb/src/main/java/org/apache/flink/connector/mongodb/source/reader/MongoSourceReader.java#L58>
> and
> soon.
> 
> Moreover, even the constructor of SingleThreadMultiplexSourceReaderBase
> (which is PublicEvolving) includes the params of SingleThreadFetcherManager
> and FutureCompletingBlockingQueue.  That means that the
> SingleThreadFetcherManager  and FutureCompletingBlockingQueue have already
> been exposed to users for a long time and are widely used.
> 
> Considering that all source implementations are using them de facto, why
> not annotate SingleThreadFetcherManager and FutureCompletingBlockingQueue
> as PublicEvolving so that developers will modify it more carefully to avoid
> any potential issues.  As shown in FLINK-31324[2], FLINK-28853[3] used
> to change the default constructor of SingleThreadFetcherManager. However,
> it influenced a lot. Finally, the former constructor was added back and
> marked as Deprecated。
> 
> In conclusion, the goal of this FLIP is to annotate
> SingleThreadFetcherManager(includes its parent class) and
> FutureCompletingBlockingQueue as PublicEvolving.
> 
> Looking forward to hearing from you.
> 
> 
> [1]
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=278465498
> 
> [2] https://issues.apache.org/jira/browse/FLINK-31324
> 
> [3] https://issues.apache.org/jira/browse/FLINK-28853

Reply via email to