Integration / Apache Camel Interview Questions
How does the Recipient List EIP work in Camel?
The Recipient List dynamically determines the list of endpoints to send a message to at runtime, based on a header or expression. Unlike Multicast (which uses a static list), the destinations are computed from the message itself. This is useful for subscription-based routing, workflow dispatch tables, and tenant-aware fan-out.
// Recipients read from a header (comma-separated URIs):
from("direct:start")
.recipientList(header("destinations"));
// Dynamic list built using Simple:
from("direct:notify")
.recipientList(simple("jms:queue:${header.tenantId}-alerts,http://audit.service/log"))
.parallelProcessing();
// Stop on first exception from any recipient:
from("direct:send")
.recipientList(header("targets")).stopOnException();The recipients are resolved per-message. Multiple recipients can be processed in parallel with .parallelProcessing(). Responses from each recipient are discarded by default; use an AggregationStrategy to merge them. The delimiter defaults to comma but can be changed with .delimiter(string).
More Related questions...