I have looked into several message queues as referenced in this link. Several of the larger and more popular ones are in memory only.
I can understand the need for this in some situations however in a large architecture this makes little sense to me. For instance if I have a series of work that needs to be performed such as user calculations, object updates, info refresh, and then the MQ crashes all work is lost. If this is imperative the lost work could be loaded again however why would I want to?
I would imagine there is vital and then regular pieces of information however if I use a non-persistence MQ then all my data would be regular and that doesn't seem valid.