What is a router?

We often talk about that Camel is a mediation and routing framework; so what exactly is a router and what does it do?

Basically a router just consumes Message exchanges from some Endpoint, then sends them on to some other Endpoint using some kind of Enterprise Integration Patterns.

For example a router could implement the Content Based Router pattern, to route from an endpoint to one or more destination endpoints using a Predicate based on the message content.

Typically a route or router consists of one or more consumers; either an Event Driven Consumer or a Polling Consumer or possibly a Transactional Client. Then there are one or more Processor instances which could send the message to one or more endpoints.