Resharding redistributes data when adding or removing shards:
Approaches:
Double-and-split: Double shard count, split each shard in half. Minimizes data movement.
Consistent hashing: Only of data moves when adding nth shard.
Virtual shards: Pre-allocate many virtual shards, map to fewer physical shards. Remap without data movement.
During resharding:
- Dual-write to old and new locations
- Background migration of historical data
- Atomic cutover when complete
Plan for resharding from day one. It's much harder to add later.