code: func (dg *deliverGroup) Connect(ctx context.Context) error {
  	dg.wg.Add(len(dg.Clients))
  	for _, client := range dg.Clients {
  		go dg.ClientConnect(ctx, client)
  	}
  	readyCh := make(chan struct{})
  	go dg.WaitForWG(readyCh)
  
  	select {
  	case <-readyCh:
  		if dg.Error != nil {
  			err := errors.WithMessage(dg.Error, "failed to connect to deliver on all peers")
  			return err
  		}
  	case <-ctx.Done():
  		err := errors.New("timed out waiting for connection to deliver on all peers")
  		return err
  	}
  
  	return nil
  }
docs: // Connect waits for all deliver clients in the group to connect to
  // the peer's deliver service, receive an error, or for the context
  // to timeout. An error will be returned whenever even a single
  // deliver client fails to connect to its peer