blob: f027b4b55dd7d3fd26bf14020e00947615b85c1f [file] [log] [blame]
Enterprise Integration Patterns
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Camel supports most of the link:http://www.eaipatterns.com/toc.html[Enterprise Integration Patterns] from the excellent book by link:http://www.amazon.com/exec/obidos/search-handle-url/105-9796798-8100401?%5Fencoding=UTF8&search-type=ss&index=books&field-author=Gregor%20Hohpe[Gregor Hohpe] and link:http://www.amazon.com/exec/obidos/search-handle-url/105-9796798-8100401?%5Fencoding=UTF8&search-type=ss&index=books&field-author=Bobby%20Woolf[Bobby Woolf].
// eips: START
Number of EIPs: 64 (2 deprecated)
[width="100%",cols="4,6",options="header"]
|===
| EIP | Description
| link:src/main/docs/eips/aggregate-eip.adoc[Aggregate] +
`<aggregate>` | Aggregates many messages into a single message
| link:src/main/docs/eips/batch-config-eip.adoc[Batch-config] +
`<batch-config>` | Configures batch-processing resequence eip.
| link:src/main/docs/eips/bean-eip.adoc[Bean] +
`<bean>` | Calls a java bean
| link:src/main/docs/eips/choice-eip.adoc[Choice] +
`<choice>` | Routes messages based on a series of predicates
| link:src/main/docs/eips/circuitBreaker-eip.adoc[Circuit Breaker] +
`<circuitBreaker>` | *deprecated* Circuit break load balancer
| link:src/main/docs/eips/claimCheck-eip.adoc[Claim Check] +
`<claimCheck>` | The Claim Check EIP allows you to replace message content with a claim check (a unique key), which can be used to retrieve the message content at a later time.
| link:src/main/docs/eips/convertBodyTo-eip.adoc[Convert Body To] +
`<convertBodyTo>` | Converts the message body to another type
| link:src/main/docs/eips/customLoadBalancer-eip.adoc[Custom Load Balancer] +
`<customLoadBalancer>` | Custom load balancer
| link:src/main/docs/eips/delay-eip.adoc[Delay] +
`<delay>` | Delays processing for a specified length of time
| link:src/main/docs/eips/dynamicRouter-eip.adoc[Dynamic Router] +
`<dynamicRouter>` | Routes messages based on dynamic rules
| link:src/main/docs/eips/enrich-eip.adoc[Enrich] +
`<enrich>` | Enriches a message with data from a secondary resource
| link:src/main/docs/eips/failover-eip.adoc[Failover] +
`<failover>` | Failover load balancer
| link:src/main/docs/eips/filter-eip.adoc[Filter] +
`<filter>` | Filter out messages based using a predicate
| link:src/main/docs/eips/from-eip.adoc[From] +
`<from>` | Act as a message source as input to a route
| link:src/main/docs/eips/hystrix-eip.adoc[Hystrix] +
`<hystrix>` | Hystrix Circuit Breaker EIP
| link:src/main/docs/eips/hystrixConfiguration-eip.adoc[Hystrix Configuration] +
`<hystrixConfiguration>` | Hystrix Circuit Breaker EIP configuration
| link:src/main/docs/eips/idempotentConsumer-eip.adoc[Idempotent Consumer] +
`<idempotentConsumer>` | Filters out duplicate messages
| link:src/main/docs/eips/inOnly-eip.adoc[In Only] +
`<inOnly>` | Marks the exchange pattern for the route to one way
| link:src/main/docs/eips/inOut-eip.adoc[In Out] +
`<inOut>` | Marks the exchange pattern for the route to request/reply
| link:src/main/docs/eips/loadBalance-eip.adoc[Load Balance] +
`<loadBalance>` | Balances message processing among a number of nodes
| link:src/main/docs/eips/log-eip.adoc[Log] +
`<log>` | Logs the defined message to the logger
| link:src/main/docs/eips/loop-eip.adoc[Loop] +
`<loop>` | Processes a message multiple times
| link:src/main/docs/eips/marshal-eip.adoc[Marshal] +
`<marshal>` | Marshals data into a specified format for transmission over a transport or component
| link:src/main/docs/eips/multicast-eip.adoc[Multicast] +
`<multicast>` | Routes the same message to multiple paths either sequentially or in parallel.
| link:src/main/docs/eips/onFallback-eip.adoc[On Fallback] +
`<onFallback>` | Route to be executed when Hystrix EIP executes fallback
| link:src/main/docs/eips/otherwise-eip.adoc[Otherwise] +
`<otherwise>` | Route to be executed when all other choices evaluate to false
| link:src/main/docs/eips/pipeline-eip.adoc[Pipeline] +
`<pipeline>` | Routes the message to a sequence of processors.
| link:src/main/docs/eips/pollEnrich-eip.adoc[Poll Enrich] +
`<pollEnrich>` | Enriches messages with data polled from a secondary resource
| link:src/main/docs/eips/process-eip.adoc[Process] +
`<process>` | Calls a Camel processor
| link:src/main/docs/eips/random-eip.adoc[Random] +
`<random>` | Random load balancer
| link:src/main/docs/eips/recipientList-eip.adoc[Recipient List] +
`<recipientList>` | Routes messages to a number of dynamically specified recipients (dynamic to)
| link:src/main/docs/eips/removeHeader-eip.adoc[Remove Header] +
`<removeHeader>` | Removes a named header from the message
| link:src/main/docs/eips/removeHeaders-eip.adoc[Remove Headers] +
`<removeHeaders>` | Removes message headers whose name matches a specified pattern
| link:src/main/docs/eips/removeProperties-eip.adoc[Remove Properties] +
`<removeProperties>` | Removes message exchange properties whose name matches a specified pattern
| link:src/main/docs/eips/removeProperty-eip.adoc[Remove Property] +
`<removeProperty>` | Removes a named property from the message exchange
| link:src/main/docs/eips/resequence-eip.adoc[Resequence] +
`<resequence>` | Resequences (re-order) messages based on an expression
| link:src/main/docs/eips/rollback-eip.adoc[Rollback] +
`<rollback>` | Forces a rollback by stopping routing the message
| link:src/main/docs/eips/roundRobin-eip.adoc[Round Robin] +
`<roundRobin>` | Round robin load balancer
| link:src/main/docs/eips/routingSlip-eip.adoc[Routing Slip] +
`<routingSlip>` | Routes a message through a series of steps that are pre-determined (the slip)
| link:src/main/docs/eips/saga-eip.adoc[Saga] +
`<saga>` | Enables sagas on the route
| link:src/main/docs/eips/sample-eip.adoc[Sample] +
`<sample>` | Extract a sample of the messages passing through a route
| link:src/main/docs/eips/script-eip.adoc[Script] +
`<script>` | Executes a script from a language which does not change the message body.
| link:src/main/docs/eips/serviceCall-eip.adoc[Service Call] +
`<serviceCall>` | To call remote services
| link:src/main/docs/eips/setBody-eip.adoc[Set Body] +
`<setBody>` | Sets the contents of the message body
| link:src/main/docs/eips/setFaultBody-eip.adoc[Set Fault Body] +
`<setFaultBody>` | Sets the contents of a fault message's body
| link:src/main/docs/eips/setHeader-eip.adoc[Set Header] +
`<setHeader>` | Sets the value of a message header
| link:src/main/docs/eips/setOutHeader-eip.adoc[Set Out Header] +
`<setOutHeader>` | *deprecated* Sets the value of a header on the outbound message
| link:src/main/docs/eips/setProperty-eip.adoc[Set Property] +
`<setProperty>` | Sets a named property on the message exchange
| link:src/main/docs/eips/sort-eip.adoc[Sort] +
`<sort>` | Sorts the contents of the message
| link:src/main/docs/eips/split-eip.adoc[Split] +
`<split>` | Splits a single message into many sub-messages.
| link:src/main/docs/eips/sticky-eip.adoc[Sticky] +
`<sticky>` | Sticky load balancer
| link:src/main/docs/eips/stop-eip.adoc[Stop] +
`<stop>` | Stops the processing of the current message
| link:src/main/docs/eips/stream-config-eip.adoc[Stream-config] +
`<stream-config>` | Configures stream-processing resequence eip.
| link:src/main/docs/eips/threads-eip.adoc[Threads] +
`<threads>` | Specifies that all steps after this node are processed asynchronously
| link:src/main/docs/eips/throttle-eip.adoc[Throttle] +
`<throttle>` | Controls the rate at which messages are passed to the next node in the route
| link:src/main/docs/eips/to-eip.adoc[To] +
`<to>` | Sends the message to a static endpoint
| link:src/main/docs/eips/toD-eip.adoc[To D] +
`<toD>` | Sends the message to a dynamic endpoint
| link:src/main/docs/eips/topic-eip.adoc[Topic] +
`<topic>` | Topic load balancer
| link:src/main/docs/eips/transform-eip.adoc[Transform] +
`<transform>` | Transforms the message body based on an expression
| link:src/main/docs/eips/unmarshal-eip.adoc[Unmarshal] +
`<unmarshal>` | Converts the message data received from the wire into a format that Apache Camel processors can consume
| link:src/main/docs/eips/validate-eip.adoc[Validate] +
`<validate>` | Validates a message based on an expression
| link:src/main/docs/eips/weighted-eip.adoc[Weighted] +
`<weighted>` | Weighted load balancer
| link:src/main/docs/eips/when-eip.adoc[When] +
`<when>` | Triggers a route when an expression evaluates to true
| link:src/main/docs/eips/wireTap-eip.adoc[Wire Tap] +
`<wireTap>` | Routes a copy of a message (or creates a new message) to a secondary destination while continue routing the original message.
|===
// eips: END