What is the purpose of MAX_SHARDS? Why is this just capping the number of shards rather than throwing an exception? If we are unable to make shards even remotely near targetPartitionSize I think it's probably better to throw an exception rather than make huge shards and possibly cause downstream issues.