Hi,

I'm working on a native streaming IO connector for the Go SDK to enable
reads and writes from/to NATS (#29000
<https://github.com/apache/beam/issues/29000>) and would like to better
understand how bundle finalization works.

For this use case I need to register a callback function which acknowledges
the processed messages.

More concretely, I wonder:

   - When/with which interval is the callback function invoked? Is it
   supposed to happen at every runner and SDF initiated checkpoint?
   - Is it correct that the registered callback is called and retried on a
   best effort? What is the estimated success rate for this best effort?


When running a WIP example pipeline
<https://github.com/johannaojeling/beam/blob/cfa6babbd0c9b1196c186974165beb7559a226db/sdks/go/examples/natsread/main.go>
on Dataflow the callback function is only ever called once but ignored
after subsequent checkpoints so thereby my questions.

If anyone could help clarify the above or point me towards some
documentation that would be much appreciated!

Thanks,
Johanna

Reply via email to