Scenario: You have simple/normal: request/response queues for clients. For DR (Disaster Recovery) purposes it is required to backup each queue's messages for 1 month. (And this is required to be done on the broker itself in backup-request/backup-response queues.) This way if clients lose their message store -- it can be replayed to them using the backup queues.
With Artemis this could be implemented using: Diverts to backup-queues (non-exclusive: so they are copied) and then using a transformer plugin which would set the expiry message-property to 1 month (in the diverted backup-queue messages). No expiry-queue would be set, so messages would be dropped when they expire. 1) Have I missed anything? 2) Is there a better way to do this? 3) Will Artemis store (in journal) 1 copy of the message body and use pointers to refer to that message body in diverted/copied messages? 4) Artemis divert will change the message-ID. It would be nice to keep the existing message-ID. If the transformer plugin sets this message-ID back to the original -- will this cause problems?