Why should I have to learn about Apache Camel ?

Thiago E. Cabral
3 min readAug 30, 2020

What is Apache Camel ?

Apache Camel is a Framework that help you to integrate systems, its works as a routing-engine that carries messages from one point to another point, that’s called ‘route’, built with DSL.

This transportation follows EIPs (Enterprise Integration Partnerts) https://www.enterpriseintegrationpatterns.com/, that help you to find the best approach for your implementation, following a patner.

What is a Message ?

Message can be a XML, a JSON, a simple String, or any format that you can represent through systems, and is written by sender with the goal to delivery to a receiver.

What is a Route ?

Route is the way that the message will follow, since a start point (from) until the finish point (to). Can be pretty simple, as we’ll see below, but can be more sophisticated using many processings.

What is DSL (Domain-specific language) ?

Imagine that, with Apache Camel, the developers are builders of routing mechanisms. So, for construct it, they uses DSL.

In Apache Camel, DSL is a Java API fluent, and it is so simple like that:

from(“file:orders”)
.to(“jms:queue:orders”);

This is amazing, because is not too painfull as implementing in Java way, but, you are still on control of the code, different from some visual tools.

How a routing-engine works ?

Let’s take a look at the above example, that is small route, but is very powerfull. In this case, we are using 2 Camel’s component, one of these is the “file” and other one is “jms”.

In a practical way, with the first line we told to Camel: “Hey, take the files in the path ‘/orders’ …” And, with the second line, we said: “… and, write the each file’s content into the queue ‘orders’”.

Of course, we need a little configuration, but is not the focuse of this article. These details I will show in the next ones.

What is a Camel’s Component ?

How we saw, Apache Camel uses component for does his job, and, a component is nothing more than an abstraction that you can use in a simple way.

There is a component for almost everything you need to do, and, I think that others is coming, of course. Take a look on the Camel Components Official Page.

And why will learning Apache Camel help me?

How we saw, the Apache Camel is a powerful integration tool that help us to connect many kind of systems in a simple way. And, we agree that today’s applications rarely live in isolation.

So, after that, we can imagine in a enterprise context, where everyday we build new softwares that need to conect with the legacy, or third-party, for any reason, in a many diferent ways, and the clients expect that all works very well.

For help us in this challenge Apache Camel is perfect, it’s take care about the small details, and, let me in control of the code to doing that I really need to do.

--

--