We're considering using GlobalKTables / KeyValueStores for locally caching
topic content in services. The topics would be compacted such that only the
latest key/value pair would exist for a given key.

One question that's come up is how to determine, when bootstrapping the
app, when the cache has been populated with the latest content from the
topic (so we start with a "warm" cache). ReadOnlyKeyValueStore has
an approximateNumEntries() method that we could use to see how much we've
got, but trying to figure out how much there is in the topic looks much
more difficult -- the only way I can see via the APIs / code is to use an
AdminClient to get the topic partitions and then the KafkaConsumer to get
the end offsets for those.

Does anyone have experience doing this kind of caching? How did you handle
the bootstrapping issue?

Any thoughts on easier or better ways to determine when the cache is warm?

thx,
Chris

Reply via email to