blob: 8d52d2935f420db1f65388420ac2f3e35c784a2a [file] [log] [blame]
= Architecture
The following diagram shows a high-level view of the main concepts that make up Camel's architecture.
image::images/camel-architecture.png[image]
At the center of the diagram you have the _heart_ of Apache Camel; the xref:camelcontext.adoc[CamelContext].
The `CamelContext` is "Camel" ... the runtime Camel, that contains and holds everything together.
xref:routes.adoc[Routes] are defined using one of Camel’s xref:dsl.adoc[DSLs].
xref:processor.adoc[Processors] are used to transform and
manipulate messages during routing as well as to implement all the
xref:components:eips:enterprise-integration-patterns.adoc[EIP]s, which have
corresponding names in the DSLs. xref:component.adoc[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 xref:endpoint.adoc[endpoint] interface.
== Routes 101
You use Camel for integration, and a key concept in Camel is xref:routes.adoc[routes] which
tells Camel how messages should be routed between systems.
A route has exactly one input xref:endpoint.adoc[endpoint],
and 0, 1 or more output xref:endpoint.adoc[endpoints].
You use Camel xref:dsl.adoc[DSL] to _code_ the xref:routes.adoc[routes].
For example the route below is coded in xref:java-dsl.adoc[Java DSL]:
[source,java]
----
public class MyRoute extends RouteBuilder {
public void configure() throws Exception {
from("ftp:myserver/folder")
.to("activemq:queue:cheese");
}
}
----