Hello all,

In https://github.com/apache/beam/pull/11919, there is a concern about the
fact that the underlying client library's Message class uses guava's
ListMultimap to represent a String -> Collection<ByteString> mapping, and
this type is exposed by the interface. A couple of questions:

1) I'd like to use the same primitive value types as the underlying client
library for consistency. Given that both the client library and beam io
have the same maintainers, is this likely to cause long term issues? I'd
really like to avoid wrapping the client library types in an
almost-identical-but-not-quite wrapper just to remove guava, and I don't
think removing guava from the underlying type is reasonable.

2) What is the blast radius of guava incompatibility issues? There is a
presubmit that blocks beam from using unshaded guava, presumably because it
has caused issues in the past. If I expose this type, and someone tries to
use it with an incompatible guava version, will they fail if they try to
use beam or try to use this IO specifically?

Thanks! Looking forward to some feedback.

Reply via email to