annotation class Retry(val enabled: Boolean = true, val maxRetries: Int = DEFAULT_MAX_RETRIES, val minBackoff: Int = DEFAULT_MIN_BACKOFF, val executionTimeout: Int = DEFAULT_EXECUTION_TIMEOUT, val recoverable: Array<KClass<out Throwable>> = [], val unrecoverable: Array<KClass<out Throwable>> = [])