source_failover implementation and tests
documented source_failover