Skip to content
Preptima
hardScenarioDesignSeniorStaff

How do you achieve true exactly-once semantics in Flink across source, state, and sink without cratering throughput?

2 min readUpdated 2026-08-15

Answer

Short answer

An analysis of the architectural reality of exactly-once guarantees in Flink, from distributed snapshots to two-phase commits.

Was this answer helpful?

Likely follow-ups

  • How do you handle a sink that has no transactional semantics at all, such as a plain REST API?
  • What happens to your exactly-once guarantees when you need to rescale a stateful operator's parallelism?
  • How would you detect in production that your two-phase commit sink is silently duplicating records?

Related questions