anchor.diff:  Successfully started reassignment of partitions {"version":1,"partitions":[{"topic":"__consumer_offsets","partition":4,"replicas":[0,2,3]},{"topic":"__consumer_offsets","partition":3,"replicas":[3,0,1]},{"topic":"__consumer_offsets","partition":0,"replicas":[0,1,2]},{"topic":"test_topic","partition":4,"replicas":[3,1]},{"topic":"test_topic","partition":3,"replicas":[2,3]},{"topic":"test_topic","partition":2,"replicas":[1,2]},{"topic":"test_topic","partition":0,"replicas":[3,0]},{"topic":"__consumer_offsets","partition":2,"replicas":[2,3,0]},{"topic":"test_topic","partition":1,"replicas":[0,1]},{"topic":"__consumer_offsets","partition":1,"replicas":[1,2,3]}]}
   ----
   
  -One the reassignment is Finished, you will partitions got redistributed over the cluster:
  +You should be aware that you can not execute an assignment plan containing a dead or stopped node.
  +The assignment can only be executed if mentioned brokers are alive.
  +
  +Once the reassignment is finished, your partitions have been redistributed over the cluster:
   
   image::2016-10-17-Scaling-Kafka/kafka-add-node.svg[Adding a node]
   
  -It may take a lot of time to move partitions from one node to another when the partition is big.
  -To check the partition reassignment, you can use:
  +It may take a lot of time to move partitions from one node to another when the partitions are fat.
  +To check the partition reassignment, you can either use:
   
   * The `kafka-reassign-partitions.sh` tool with the `--verify` command.
   * The `kafka-topic.sh` tool with the `--describe` command.
   
   ----
  -$ bin/kafka-reassign-partitions.sh --zookeeper localhost:2181 --verify --reassignment-json-file reassignment.json
  +$ bin/kafka-reassign-partitions.sh --zookeeper zkhost:2181 --verify --reassignment-json-file reassignment.json
   Status of partition reassignment:
   Reassignment of partition [__consumer_offsets,4] completed successfully
   Reassignment of partition [__consumer_offsets,3] completed successfully
   Reassignment of partition [__consumer_offsets,0] completed successfully
   Reassignment of partition [test_topic,4] completed successfully
   Reassignment of partition [test_topic,3] completed successfully
  -Reassignment of partition [test_topic,2] completed successfully
  +Reassignment of partition [test_topic,2] is still in progress
   Reassignment of partition [test_topic,0] completed successfully
   Reassignment of partition [__consumer_offsets,2] completed successfully
  -Reassignment of partition [test_topic,1] completed successfully
  +Reassignment of partition [test_topic,1] is still in progress
   Reassignment of partition [__consumer_offsets,1] completed successfully
   
  -$ bin/kafka-topics.sh --zookeeper localhost:2181 --describe --topic test_topic
  +$ bin/kafka-topics.sh --zookeeper zkhost:2181 --describe --topic test_topic
   Topic:test_topic        PartitionCount:5        ReplicationFactor:2     Configs:
           Topic: test_topic       Partition: 0    Leader: 3       Replicas: 3,0   Isr: 0,3
           Topic: test_topic       Partition: 1    Leader: 0       Replicas: 0,1   Isr: 1,0
  
positive.code: {"version":1,"partitions":[{"topic":"test_topic","partition":0,"replicas":[3,0]},{"topic":"test_topic","partition":4,"replicas":[3,1]},{"topic":"__consumer_offsets","partition":0,"replicas":[0,1,2]},{"topic":"test_topic","partition":2,"replicas":[1,2]},{"topic":"test_topic","partition":3,"replicas":[2,3]},{"topic":"__consumer_offsets","partition":3,"replicas":[3,0,1]},{"topic":"__consumer_offsets","partition":4,"replicas":[0,2,3]},{"topic":"test_topic","partition":1,"replicas":[0,1]},{"topic":"__consumer_offsets","partition":1,"replicas":[1,2,3]},{"topic":"__consumer_offsets","partition":2,"replicas":[2,3,0]}]}
  ----
  
  Let's use the proposed reassignment plan, format it a bit to make it more readable,
  and save it in a `reassignment.json` file:
  
  [source,json]
  
negative.code: 
  image::2016-10-17-Scaling-Kafka/kafka-rack.svg[Rack awareness]
  
  This feature is really interesting to improve failure tolerance,
  but it makes the assignment harder to build manually.
  
  == Simple scaling
  
  As you have seen it, horizontally scaling a Kafka cluster is not that hard, but it is tedious.
  
  Kafka Manager allows, through its web UI, to reassign partitions to nodes.
  
  Running on a highly elastic environment, like a Docker cluster scheduler, seems sensitive.
  
  Some solutions exist though:
  