I'd like to know how others have solved the business need of providing message reliability? The core requirement is to ensure that a message is never lost due to a service interruption - whether it be a power outage, the component manually stopped via JMX, or ServiceMix is brought down for maintenance. My current design approach is to make use of topics and durable subscriber queues to provide message persistence and reliability. I've seen the Guaranteed Message Delivery EIP, but am not aware of any implementations.
If you cannot afford to ever loose a message then use the following concepts:
transactions, persistent messages, durable subscriptions. In case of using ServiceMix 3 you might also want to look into using the JMS/JCA flow.
Hope this helps.