code: func (p *Producer) Put(data []byte, partitionKey string) error {
  	if len(data) > maxRecordSize {
  		return ErrRecordSizeExceeded
  	}
  
  	p.records <- &k.PutRecordsRequestEntry{
  		Data:         data,
  		PartitionKey: &partitionKey,
  	}
  
  	return nil
  }
docs: // Put record `data` using `partitionKey`. This method is thread-safe.