replay

open suspend override fun replay(maxAttempts: Int = DEFAULT_MAX_ATTEMPTS, isPermanent: (Throwable) -> Boolean = { false }, send: suspend (OpEntry) -> Unit)

Drain PENDING ops oldest-first. For each, calls send; on success the op is deleted. On failure: if isPermanent returns true for the error, or the op has now failed maxAttempts times, it is dead-lettered and replay continues; otherwise the failure is recorded and replay STOPS (preserving order) — the next trigger resumes from the same op.