If there are no durable subscribers or consumers the message won't be delivered any where. i.e. it will be forgotten about.
Yeah, thats the most common answer I get when I ask this question...
It can be a very useful feature as when a message is sent persistenty then its normaly fair to assume that the message has some importance and so if no durable subscriber exists then perhaps the system(s) using the messaging are not correctly running, configured or initialised.
The ability to route persistent messages to a queue where no durable subscriber exists based on some configuration (e.g. a topic wildcard) would mean a) the queue could be monitored and the error noted and b) the message could be replayed later and not lost.
We could do this by adding a new boolean property on AddressSettings: sendToDLAWhenNotRouted (or something like that).
If a message is routed to an address and doesn't end up in any queues (subscriptions) and sendToDLAWhenNotRouted = true then it will get routed to the DLA (Dead Letter Address) for that address.