code: func (ref *Consumer) MarkOffset(msg *ConsumerMessage, metadata string) {
  
  	ref.Consumer.MarkOffset(&sarama.ConsumerMessage{
  		Topic:     msg.Topic,
  		Partition: msg.Partition,
  		Offset:    msg.Offset,
  	}, metadata)
  }
docs: // MarkOffset marks the provided message as processed, alongside a metadata string
  // that represents the state of the partition consumer at that point in time. The
  // metadata string can be used by another consumer to restore that state, so it
  // can resume consumption.
  //
  // Note: calling MarkOffset does not necessarily commit the offset to the backend
  // store immediately for efficiency reasons, and it may never be committed if
  // your application crashes. This means that you may end up processing the same
  // message twice, and your processing should ideally be idempotent.