//my function suspend fun retriable( exception: Any, numberOfAttempts: Int, timeDelay: Long, onSuccessCallback: () -> Unit, onErrorCallback: () -> Unit ) { for (attempts in 1..numberOfAttempts) { try { onSuccessCallback() } catch (ex: Exception) { if (exception is KafkaException) delay(timeDelay) else onErrorCallback(); break } } }