Till now, we didn’t talk about shard allocation process or ability to move shards around the cluster. If you recall what shard allocation is – the process of allocating shards to nodes which can happen during initial cluster start, during replicas allocation or when nodes are being removed or added to the cluster. However apart from the allocation mechanism control, sometimes it is crucial to be able to cancel shard allocation or move shards around inside the cluster. In order to do that ElasticSearch exposes the reroute API, which allows us to move shards, cancel their allocation and finally force the allocation. You can imagine a situation when you would like to take off a single node from your cluster for maintenance, but you have data on it and first you want to somehow move the data to some other node. This is where the reroute API can come in handy. So now, let’s discuss all the possibilities that give us.