Hi devs, We have been evaluating the 3 TBD items from the Imperative API section of the release 2.0 work items [1]. 1. Refactor the API modules 2. Refactor context-like APIs 3. Convert user-facing concrete classes into interfaces.
*We propose to remove 1 & 3 from the list *(3 seems subsumed by 1). FLIP-321[2] requires us to provide a smooth migration path for significant API changes. For these 2 items, that pretty much means what the other item "Introduce a MVP for a new ProcessFunction API" is doing, which can hardly be as stable as for the users to migrate from the current DataStream API. We don't see any other good ways to solely refactor the modules or hide StreamOperator from users without introducing significant breaking changes. Therefore, to resolve these issues, we probably should wait for the ProcessFunction API to be ready and replace DataStream API in the next major release (3.0). *We propose to make 2 a nice-to-have item of release 2.0. *IMHO, this is something small enough to provide a smooth migration path, with the benefit of simplifying the codebase, improving the maintainability and extensibility. However, it's not super critical, and it should also be fine if we postpone it to the next major release (3.0) together with other API breaking changes. These changes do not involve the must-have items, thus should not require another vote. But still, I'd rather not update the wiki page silently, and would like to hear if anyone has different opinions about this. Looking forward to your feedback. Best, Xintong [1] https://cwiki.apache.org/confluence/display/FLINK/2.0+Release [2] https://cwiki.apache.org/confluence/display/FLINK/FLIP-321%3A+Introduce+an+API+deprecation+process