code: def execute(self, *args, **kwargs):
          
          num_clients = len(self._seed_clients)
          start_client = (self._client_idx + 1) % num_clients
  
          def _client_error(failure, client_i):
              failure.trap(ConnectError)
              client_i = (client_i + 1) % num_clients
              if client_i == start_client:
                  return failure
              else:
                  return _try_execute(client_i)
  
          def _try_execute(client_i):
              self._client_idx = client_i
              d = self._seed_clients[client_i].execute(*args, **kwargs)
              return d.addErrback(_client_error, client_i)
  
          return _try_execute(start_client)
docs: See :py:func:`silverberg.client.CQLClient.execute`