Scala library to run, persist and retry asynchronous tasks in applications