Hi, I recently saw that we added a dependency on our shaded-guava to flink-core [1]. Just for the record, I don’t want do diminish the contributions of anyone involved in the PR in any way. It just made me realise that we have some implicit agreements or assumptions about adding certain things to core packages that we might never have really discussed. I think we should do that now.
Quite some time ago an effort was started to reduce our dependency on Guava [2] because of some problems with version stability and dependency conflicts. At some later point, we created shaded guava so that we could use it without clashes [3]. I believe we now have shaded Guava only in runtime modules where it wasn’t easy to remove and CEP. With the creation of shaded guava, I think we are in a bit of a limbo situation where it is not exactly clear what our stance towards it is, because it is easy to add to modules, as evident by the aforementioned PR. I think we should discuss that situation and agree upon a common stance on the topic. In general, I think the surface (which includes classes, interfaces, and dependencies, among other things) of core modules should be kept as lean as possible. (all modules really) What do you think? Best, Aljoscha [1] https://github.com/apache/flink/pull/7679 <https://github.com/apache/flink/pull/7679> [2] https://issues.apache.org/jira/browse/FLINK-3700 <https://issues.apache.org/jira/browse/FLINK-3700> [3] https://issues.apache.org/jira/browse/FLINK-6982