We will definitely needs some kind of sharding when the user number and the amount of data grows.
I'm wondering if partitioning by ID fragment is a good idea. If you read a list of events almost every event needs to be read from a different relay.
It might be better to optimize for reading multiple events of a particular author and by partitioning by pubkey instead.
current relays won't handle hundreds thousand CCUs. a new approach is necessary.
using pubkey for sharding may result in easier banning of a pubkey.