Guaranteed Delivery
Camel supports the Guaranteed Delivery from the EIP patterns using among others the following components:
-
File for using file systems as a persistent store of messages
-
JMS when using persistent delivery (the default) for working with JMS Queues and Topics for high performance, clustering and load balancing
-
JPA for using a database as a persistence layer, or use any of the many other database component such as SQL, JDBC, MyBatis

Example
The following example demonstrates illustrates the use of Guaranteed Delivery within the JMS component. By default, a message is not considered successfully delivered until the recipient has persisted the message locally guaranteeing its receipt in the event the destination becomes unavailable.
from("direct:start")
.to("jms:queue:foo");
And in XML:
<route>
<from uri="direct:start"/>
<to uri="jms:queue:foo"/>
</route>