- Shard by time
- Shard by a semi-random key
- Shard by an evenly distributed key in the data set
- Shard by combining a natural and synthetic key
There are pros and cons for each – for example – with option #1 – all inserts (same timestamp) will flow to the same shard. Most reads will tend to cluster on the same shard, assuming the users query the recent data more frequently.