code: func BackOff(attempts uint) int {
  	upper := int(math.Min(float64(retryBackOffCap), float64(retryBackOffBase)*math.Pow(2.0, float64(attempts))))
  	sleep := time.Duration(rand.Intn(upper)) * time.Millisecond
  	time.Sleep(sleep)
  	return int(sleep)
  }
docs: // BackOff Implements exponential backoff with full jitter.
  // Returns real back off time in microsecond.
  // See http://www.awsarchitectureblog.com/2015/03/backoff.html.