Hello beam developers,
I'm the primary author of the Pub/Sub Lite I/O, and I'd like to get some
feedback on a change to the model for hosting this I/O in beam. Our team
has been frustrated by the fact that we have no way to release features or
fixes for bugs to customers on time scales shorter than the 1-2 months of
the beam release cycle, and that those fixes are necessarily coupled with a
beam version upgrade. To work around this, I forked the I/O in beam to our
own repo about 6 months ago and have been maintaining both copies in
parallel.
I'd like to retain our ability to quickly fix and improve the I/O while
retaining end-user visibility within the beam repo. To do this, I'd like
to remove all the implementation from the beam repo, and leave the I/O
there implemented as:
```
class PubsubLiteIO extends com.google.cloud.pubsublite.beam.PubsubLiteIO {}
````
, and add a dependency on our beam artifact.
This enables beam users who want to just use the
beam-sdks-java-io-google-cloud-platform artifact to do so, but they can
also track the canonical version separately in our repo to get fixes and
improvements at a faster rate. All static methods from the parent class
would be available on the class in the beam repo.
I'd be interested to hear anyones thoughts and suggestions surrounding this.
-Daniel