The only time we choose new sinks is when we have a ConnectException, but we have encountered other exceptions where there is a problem contacting a particular sink and replication gets backed up for any sources that try that sink
HBASE-17675 occurred when there was a bad keytab refresh and the source was stuck.
Another issue we recently had was a bad drive controller on the sink side and replication was stuck again.
Is there any reason not to choose new sinks anytime we have a RemoteException? I can understand TableNotFound we don't have to choose new sinks, but for all other cases this seems like the safest approach.