Reputation: 11
From a previous post, it seems Flink achieves exactly-once by
After a successful pre-commit, the commit must be guaranteed to eventually succeed
I think "a successful pre-commit" is achieved by Flink Task Manager; and the "eventual succeed" is achieved by the Flink sink.
Upvotes: 1
Views: 165
Reputation: 43454
Flink's two-phase commit sinks typically couple their actions with the checkpointing mechanism in the following way:
Note that it is possible for data to be lost if the external system times out pending transactions that would be committed during the onRecovery phase.
You can learn more about this in An Overview of End-to-End Exactly-Once Processing in Apache Flink (with Apache Kafka, too!).
Upvotes: 2