Давайте предположим простой случай, подобный следующему:
ORDER_TOPIC ----> KSTREAM ----> VALIDATED_ORDER_TOPIC
|
ROCKSDB LOCAL STATE STORE
KStream дедуплицирует сообщения из ORDER_TOPIC, используя операцию преобразования с преобразователем, который сохраняет сообщения в постоянном локальном хранилище состояний по их ключу / идентификатору.Таким образом, если один и тот же заказ поступит дважды, он будет проигнорирован.
Теперь поступает новый заказ, он не дублируется, поэтому сохраняется в локальном хранилище, но перед отправкой в VALIDATED_ORDER_TOPIC происходит сбой приложения.
Мне интересно, что за транзакционные гарантии находятся внутри KStream: была ли запись сохранена и передана в локальное хранилище состояний или откат?
Не могли бы вы указать на некоторую документацию, касающуюся транзакционных гарантий для Kafka Streams снаименьшая семантика?