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
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
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.
<route> <from uri="direct:start"/> <to uri="jms:queue:foo"/> </route>