Max records for materialized views

I was watching Microservices with Confluent by Tim Berglund. He mentioned about creating queryable state store for Client details. This can be possible by using ktable or global ktable. That’s understandable.
But I am curious about how we can handle billions of records (distinct keys) in ktable. He talked their are some solutions for it, but will discuss it another time.
Can someone point to me how we can achieve this? Is it a good idea to store this kuch amount of time in queryable state store?
Is it like running multiple stream processors in parallel?

Yes, if you have a large dataset, you should horizontally scale your application to shard the data.

The “tricky” part will be to query it. You would need to build some routing layer to find the correct shard yourself. Cf https://www.confluent.io/blog/unifying-stream-processing-and-interactive-queries-in-apache-kafka/

Btw: for a GlobalKTable sharding is (by definition of it) not supported. A GlobalKTable always hold the full data set, and if you scale your application horizontally, each node with contain a full copy of the data.

Thanks for reference. Will go through it, and post here if I have any issues.