Its somewhat non-intuitive when setting a delay which takes a time.Duration that the units are in microseconds. Its easy to write code like this and think its valid.
err = retry.Do(func() error {
return foo()
}, retry.Attempts(3), retry.Delay(time.Second))