code: func (c *EtcdGroupService) GroupMembers(ctx context.Context, groupName string) ([]string, error) {
  	prefix := memberKey(groupName, "")
  	ctxT, cancel := context.WithTimeout(ctx, transactionTimeout)
  	defer cancel()
  	etcdRes, err := clientInstance.Txn(ctxT).
  		If(clientv3.Compare(clientv3.CreateRevision(groupKey(groupName)), ">", 0)).
  		Then(clientv3.OpGet(prefix, clientv3.WithPrefix(), clientv3.WithKeysOnly())).
  		Commit()
  
  	if err != nil {
  		return nil, err
  	}
  	if !etcdRes.Succeeded {
  		return nil, constants.ErrGroupNotFound
  	}
  
  	getRes := etcdRes.Responses[0].GetResponseRange()
  	members := make([]string, getRes.GetCount())
  	for i, kv := range getRes.GetKvs() {
  		members[i] = string(kv.Key)[len(prefix):]
  	}
  	return members, nil
  }
docs: // GroupMembers returns all member's UIDs