Also the approach retained using Shard on recency( timestamp ) is so wrong. So all the request will hit the same shard ? 90% of request will need to fetch the most recent tweets. sharding by time will create one hot spot . Plus what is the primary key there ? we need to filter the tweets for specific users. If you create a double primary key by user and time we will make the write operation so slow.