I wasn't clear enough ;) We are a service provider. This particular DR scenario is: if the clients lose the data/transactions (on their end) and need a replay of the transactions (messages). Clients have independent platforms to us.
(Our DR, on our sites, is having 2 data centers and replication) On traditional brokers: messages are designed to be sent and forgotten... In this scenario, described above, we are sending the message -- but want to keep a backup for 1 month, in case the client will need a replay. Is there any other more suitable pattern for this scenario? (I can't think of any and didn't find any in my research, eg EIP: Enterprise Integration Patterns). Any other pattern would involve consuming messages from the broker and storing them in some other back-end and if the clients ask for a replay -- re-enqueing the messages back on to the broker, which would be inefficient (compared to the ones I'm proposing). Would be interested in your opinions. Thanks for answering all the other questions so perfectly! Also, do you think having an option to shallow-copy messages in divert use cases like the above is a valid feature for Artemis? It would save 1/2 the disk space in our use case, because we are not transforming message bodies.