@xiangli-cmu I'd rather keep the cluster size management in one spot. The goal of the command is to set a target size but this function provides an abstraction about how to move the cluster to that size. Moving the functionality to the actual request poses two problems:

1. Multiple calls to change the config at the same time could cause them to try to resize the cluster to different sizes.

2. Retries could go on indefinitely if there is a problem demoting the other members. Timing out the request would then invalidate the setting of the target size.