The write can be done as a normal ParDo / DoFn. The read needs to expose
some watermark logic, which at the time of writing wasn't available, since
no unbounded source API was available. We may be able to write the read /
source as a SplittableDoFn since that API was introduced as an unbounded
sour
Hi,
I'm having trouble understanding why there's an extra level of indirection
when doing pubsub reads via directrunner vs writes.
For reads, we have these translations:
beam_pubsub.ReadFromPubSub ->
direct_runner._DirectReadFromPubSub ->
transform_evaluator._PubSubReadEvaluator
For writes, this