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
-
ActiveMQ or JMS when using persistent delivery (the default) for working with JMS queues and topics for high performance, clustering and load balancing
-
Kafka when using persistent delivery for working with streaming events for high performance, clustering and load balancing
-
JPA for using a database as a persistence layer, or use any of the other database component such as SQL, JDBC, or 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>