Similar to what I proposed [here](#discussion_r6123408), we could move the `preRestart` and `postRestart` implementations to `Processor` and make them `final`. This would recover on restart by default, and concrete processors should override `preRestartProcessor` and `postRestartProcessor` if needed.

To customize processor recovery, the processor pre-restart hook could return an `Option[Recover]` which lets implementors define custom recovery parameters and make recovery optional too. The same idea can be applied to `def preStartProcessor: Option[Recover]` too.

Reasonable default implementations for processor life-cycle hooks are possible.