During the development and review process of the disk health indicator we noticed that it was hard to understand. Since we learnt a lot from the first round of development we want to go through the code one more time and restructure it.
server/src/main/java/org/elasticsearch/cluster/routing/RoutingNode.java
private final String nodeId;
    @Nullable
    private final DiscoveryNode node;
    private final LinkedHashMap<ShardId, ShardRouting> shards; 
    private final LinkedHashSet<ShardRouting> initializingShards;
    private final LinkedHashSet<ShardRouting> relocatingShards;
    private final LinkedHashSet<ShardRouting> startedShards;
    private final Map<Index, Set<ShardRouting>> shardsByIndex;
    /**
     * @param nodeId    node id of this routing node
     * @param node      discovery node for this routing node