pvary commented on code in PR #23912:
URL: https://github.com/apache/flink/pull/23912#discussion_r1433804590


##########
flink-core/src/main/java/org/apache/flink/api/connector/sink2/TwoPhaseCommittingSink.java:
##########
@@ -40,17 +37,9 @@
  * @param <CommT> The type of the committables.
  */
 @PublicEvolving
-public interface TwoPhaseCommittingSink<InputT, CommT> extends Sink<InputT> {
-
-    /**
-     * Creates a {@link PrecommittingSinkWriter} that creates committables on 
checkpoint or end of
-     * input.
-     *
-     * @param context the runtime context.
-     * @return A sink writer for the two-phase commit protocol.
-     * @throws IOException for any failure during creation.
-     */
-    PrecommittingSinkWriter<InputT, CommT> createWriter(InitContext context) 
throws IOException;

Review Comment:
   @leonardBang: Thanks for the review!
   
   This was the exact issue which prevented us to evolve the API.
   `TwoPhaseCommittingSink` and `StatefulSink` overrides the same 
`createWriter` method with different return types. If we need to evolve the 
`createWriter` method for whatever reason in the future, then we need to 
provide a default implementation for it, and the new method to allow backward 
compatibility.
   If there is a sink which implements both `TwoPhaseCommittingSink` and 
`StatefulSink`, then it will not implement the new method, so the default 
implementation will be inherited from both `TwoPhaseCommittingSink` and 
`StatefulSink` which will cause a java compilation error.
   
   That is why we need to remove this method, and use `instanceof` instead in 
the implementation, to check the types.
   
   Of course, I am open for any suggestion, but sadly nothing viable come up 
during the discussions on the dev list [1], [2]
   
   Thanks,
   [1] - https://lists.apache.org/thread/344pzbrqbbb4w0sfj67km25msp7hxlyd
   [2] - https://lists.apache.org/thread/h6nkgth838dlh5s90sd95zd6hlsxwx57



-- 
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