The following diagram shows a high-level view of the main concepts that make up Camel’s architecture.


At the center of the diagram you have the heart of Apache Camel; the CamelContext. The CamelContext is "Camel" …​ the runtime Camel, that contains and holds everything together.

Routes are defined using one of Camel’s DSLs. Processors are used to transform and manipulate messages during routing as well as to implement all the EIPs, which have corresponding names in the DSLs. Components are the extension points in Camel for adding connectivity to other systems. To expose these systems to the rest of Camel, components provide an endpoint interface.

Routes 101

You use Camel for integration, and a key concept in Camel is routes which tells Camel how messages should be routed between systems.

A route has exactly one input endpoint, and 0, 1 or more output endpoints.

You use Camel DSL to code the routes. For example the route below is coded in Java DSL:

public class MyRoute extends RouteBuilder {

    public void configure() throws Exception {