Hi Martijn, Thanks for bringing us this discussion!
I think it's time to mark SinkFunction as deprecated. It may help a lot to encourage users to migrate existing sink connectors to the new interface. About the concern of Lijie, I'm not sure if it's OK to compatibly change the interface with @Public annotation, like adding a new method. If it is allowed, I think it would be fine to promote SinkV2 to @Public. Thanks, Biao /'bɪ.aʊ/ On Thu, 19 Jan 2023 at 10:26, Lijie Wang <wangdachui9...@gmail.com> wrote: > Hi Martijn, > > Thanks for driving this. I have a only concern about the Sink.InitContext. > > Does the Sink.InitContext will also be changed to @Public ? As described in > FLIP-287, currently the Sink.InitContext still lacks some necessary > information to migrate existing connectors to new sinks. If it is marked as > public/stable, we can no longer modify it in the future(since most > connectors are not migrated to SinkV2 currently, we may find we need more > information via InitContext in the future migrations). > > Best, > Lijie > > Yun Tang <myas...@live.com> 于2023年1月18日周三 21:13写道: > > > SinkV2 was introduced in Flink-1.15 and annotated as @PublicEvolving from > > the 1st day [1]. From FLIP-197, we can promote it to @Public since it > > already existed with two releases. > > And I didn't find a FLIP to discuss the process to deprecate APIs, > > considering the SinkFunction has actually been stale for some time, I > think > > we can deprecate it with the @Public SinkV2. > > > > Thus, +1 (binding) for this proposal. > > > > [1] https://issues.apache.org/jira/browse/FLINK-25555 > > > > Best > > Yun Tang > > > > ________________________________ > > From: Martijn Visser <martijnvis...@apache.org> > > Sent: Wednesday, January 18, 2023 18:50 > > To: dev <dev@flink.apache.org>; Jing Ge <j...@ververica.com>; Yun Tang < > > myas...@live.com> > > Subject: [DISCUSS] Promote SinkV2 to @Public and deprecate SinkFunction > > > > Hi all, > > > > While discussing FLIP-281 [1] the discussion also turned to the > > SinkFunction and the SinkV2 API. For a broader discussion I'm opening up > a > > separate discussion thread. > > > > As Yun Tang has mentioned in that discussion thread, it would be a good > > time to deprecate the SinkFunction to avoid the need to introduce new > > functions towards (to be) deprecated APIs. Jing rightfully mentioned that > > it would be confusing to deprecate the SinkFunction if its successor is > not > > yet marked as @Public (it's currently @PublicEvolving). > > > > My proposal would be to promote the SinkV2 API to @public in Flink 1.17 > > and mark the SinkFunction as @deprecated in Flink 1.17 > > > > The original Sink interface was introduced in Flink 1.12 with FLIP-143 > [2] > > and extended with FLIP-177 in Flink 1.14 [3] and has been improved on > > further as Sink V2 via FLIP-191 in Flink 1.15 [4]. > > > > Looking at the API stability graduation process [5], the fact that Sink > V2 > > was introduced in Flink 1.15 would mean that we could warrant a promotion > > to @public already (given that there have been two releases with 1.15 and > > 1.16 where it was introduced). Combined with the fact that SinkV2 has > been > > the result of iteration over the introduction of the original Sink API > > since Flink 1.12, I would argue that the promotion is overdue. > > > > If we promote the Sink API to @public, I think we should also immediately > > mark the SinkFunction as @deprecated. > > > > Looking forward to your thoughts. > > > > Best regards, > > > > Martijn > > > > > > [1] https://lists.apache.org/thread/l05m6cf8fwkkbpnjtzbg9l2lo40oxzd1 > > [2] > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-143%3A+Unified+Sink+API > > [3] > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-177%3A+Extend+Sink+API > > [4] > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-191%3A+Extend+unified+Sink+interface+to+support+small+file+compaction > > [5] > > > https://cwiki.apache.org/confluence/display/FLINK/FLIP-197%3A+API+stability+graduation+process > > > > >