code: func (c *connection) Produce(req *proto.ProduceReq) (*proto.ProduceResp, error) {
  
  	if req.RequiredAcks == proto.RequiredAcksNone {
  		return nil, c.sendRequestWithoutAcks(req)
  	}
  
  	b, err := c.sendRequest(req)
  	if err != nil {
  		return nil, err
  	}
  
  	return proto.ReadVersionedProduceResp(bytes.NewReader(b), req.GetVersion())
  }
docs: // Produce sends given produce request to kafka node and returns related
  // response. Sending request with no ACKs flag will result with returning nil
  // right after sending request, without waiting for response.
  // Calling this method on closed connection will always return ErrClosed.