code: func (b *sqsBroker) Publish(queueName string, msg *broker.Message, opts ...broker.PublishOption) error {
  	queueURL, err := b.urlFromQueueName(queueName)
  	if err != nil {
  		return err
  	}
  
  	input := &sqs.SendMessageInput{
  		MessageBody: aws.String(string(msg.Body[:])),
  		QueueUrl:    &queueURL,
  	}
  	input.MessageAttributes = copyMessageHeader(msg)
  	input.MessageDeduplicationId = b.generateDedupID(msg)
  	input.MessageGroupId = b.generateGroupID(msg)
  
  	log.Log(fmt.Sprintf("Publishing SQS message, %d bytes", len(msg.Body)))
  	_, err = b.svc.SendMessage(input)
  
  	if err != nil {
  		return err
  	}
  
  	// Broker interfaces don't let us do anything with message ID or sequence number
  	return nil
  }
docs: // Publish publishes a message via SQS