Начиная с версии 0.11, Kafka может быть сконфигурирован для гарантии точно один раз, установив для свойства processing.guarantee значение точно_once.
Вот фрагмент кода для установки свойства с помощью Stream API Kafka.
Надеюсь, это поможет.
import org.apache.kafka.streams.kstream.KStreamBuilder;
import org.apache.kafka.streams.KafkaStreams;
import org.apache.kafka.streams.StreamsConfig;
import java.util.Properties;
Properties config = new Properties();
config.put(StreamsConfig.PROCESSING_GUARANTEE_CONFIG, StreamsConfig.EXACTLY_ONCE);
KStreamBuilder builder = new KStreamBuilder();
KafkaStreams streams = new KafkaStreams(builder, config);
streams.start();
Ссылка: https://kafka.apache.org/documentation/streams/.