The topic I use to create a GlobalKTable is very active. In the documentation of KStream-GlobalKTable join I read
The
GlobalKTableis fully bootstrapped upon (re)start of aKafkaStreamsinstance, which means the table is fully populated with all the data in the underlying topic that is available at the time of the startup. The actual data processing begins only once the bootstrapping has completed.
How does KafkaStreams determine whether all data is read? Does it read all the messages with a timestamp below the KafkaStreams instance bootstrap time? Or does it use some kind of timeout?
Either way, I guess we better get the retention and log compaction of the underlying topic right or a restart might take a while.