Apache Flink гарантирует однократную обработку после сбоя и восстановление путем возобновления задания с контрольной точки, при этом контрольная точка представляет собой согласованный моментальный снимок распределенного потока данных и состояния оператора (алгоритм Чанди-Лэмпорта для распределенных моментальных снимков). Гарантия один раз при отработке отказа.
В случае нормальной работы кластера, как Flink гарантирует только однократную обработку, например, учитывая источник Flink, который читает из внешнего источника (скажем, Kafka), как Flink гарантирует, что событие будет прочитано один раз из источника? есть ли какое-либо подтверждение уровня приложения между источником события и источником Flink? Кроме того, как Flink гарантирует, что события передаются ровно один раз от операторов восходящего потока к нижестоящим операторам? Требует ли это каких-либо подтверждений для полученных событий?