If a custom load balancer required to maintain region and corresponding server locations,
we can capture this information when we run any balancer algorithm before assignment(like random,retain).
But during master startup we will not call any balancer algorithm if a region already assinged
During split also we open child regions first in RS and then notify to master through zookeeper.
So split regions information cannot be captured into balancer.
Since balancer has access to master we can get the information from online regions or region plan data structures in AM.
But some use cases we cannot relay on this information(mainly to maintain colocation of two tables regions).
So it's better to add some APIs to load balancer to notify balancer when region is online or offline.
These APIs helps a lot to maintain regions colocation through custom load balancer which is very important in secondary indexing.