refactor endpoints to use protocol/hostname when no endpoints set
make sure to raise error if service is unreachable (with or without a retry)
failover to other random endpoint when one is unreachable. Initialize with randomly choosen endpoint to somewhat fairly distribute load