Okay,
My comment wasn't indented to imply that persistent actors would not work here, but rather that RabbitMQ is robust, solid software, and removing it probably cause you to reimplement a lot of things that RabbitMQ already does for you. I think that getting rid of RabbitMQ is likely to increase your complexity, rather than reduce it.
Some things that come to mind:
- RabbitMQ has dead-letter exchange support, which can handle delayed redelivery of your messages
- RabbitMQ provides a nice GUI to monitor the state of your message queues, and allows you to reach your hand into a queue, pull a message out, look at it, and put it back in.
- RabbitMQ offers multiple durability options (persist to disk, publish to replica, both)
- RabbitMQ has a great publisher confirms solution, which allows you to pay for message persistence confirmation with latency, rather than CPU or excessive fsync calls.
You can implement these features using Akka, sure; but why? They're hard problems. Just use RabbitMQ. It's battle tested and it's one less custom thing everyone on your team will need to learn.
Tim