client-side sharding