A very rough check reveals that we currently have 45 invariants in balancer code:
$ git grep "invariant(.\+)" src/mongo/db/s/balancer/ | wc -l 45
As much as possible, we should avoid using invariant and use tasserts instead. This will ensure that we only fail the balancer and restart it, instead of crashing the entire shard primary.