code: func (s *Store) remove(id string) error {
  	if s.raft.State() != raft.Leader {
  		return ErrNotLeader
  	}
  
  	f := s.raft.RemoveServer(raft.ServerID(id), 0, 0)
  	if f.Error() != nil {
  		if f.Error() == raft.ErrNotLeader {
  			return ErrNotLeader
  		}
  		return f.Error()
  	}
  
  	c, err := newCommand(metadataDelete, id)
  	if err != nil {
  		return err
  	}
  	b, err := json.Marshal(c)
  	if err != nil {
  		return err
  	}
  	f = s.raft.Apply(b, s.ApplyTimeout)
  	if e := f.(raft.Future); e.Error() != nil {
  		if e.Error() == raft.ErrNotLeader {
  			return ErrNotLeader
  		}
  		e.Error()
  	}
  
  	return nil
  }
docs: // remove removes the node, with the given ID, from the cluster.