Hi:
The document said Flink can guarantee processing each tuple exactly-once,
but I can not understand how it works.
For example, In Fig 1, C is running between snapshot n-1 and snapshot
n(snapshot n hasn't been generated). After snapshot n-1, C has processed tuple
x1, x2, x3 and already outputted to user, then C failed and it recoveries from
snapshot n-1. In my opinion, x1, x2, x3 will be processed and outputted to user
again. My question is how Flink guarantee x1,x2,x3 are processed and outputted
to user only once?
[cid:[email protected]]
Fig 1.
Thanks for answing.