Yes, state is persisted to DB upon every change. Action exceptions are handled gracefully and natural part of the system, they simply fail the action. Crash recovery is build-in thanks to checksums and ActiveJob, if you're using the right adapter, like GoodJob or SolidQueue where crash recovery is guaranteed.