Apache Camel is an incredibly powerful framework for writing integration code. It allows you to skip the plumbing code that usually makes up 80% of an integration project – the specifics of dealing with databases, messaging platforms, web service invocations and the like – through an ever-growing set of over 210 technology components, and a rich library of patterns (EIPs), letting you focus on your business requirements.

If this was all that it did, it would be well worth investing the time to use it. But there’s more. Like the best tools, Camel raises the conceptual level at which you work. By placing all of the integration logic in one place (a route) it allows you to see the big picture.

You see, integration is actually distributed systems in a different hat, with all of the complexity that this implies. The systems you integrate with will fail. They will throw intermittent errors. Camel gives you the tools to address this. Firstly it lets you see at a glance your system interactions, then it lets you address these issues through support for transactions, replays, compensating operations, or just the ability to fire off an email to a human so they can sort it out.

To top it off, Camel’s built-in test support then lets you validate that your integrations work as expected, as part of your regular unit testing cycle.

All this power comes at a price – Camel is both a broad and deep framework. At Ameliant we can help you make sense of it, by building out some of the more difficult integration use cases for you, as well as providing comprehensive training, and ensuring that you have enough information to take these forward.

Ameliant provides Apache Camel consulting, to help you answer questions such as:

  • What integration pieces do we not need to write?
  • How do we get Camel to talk to systems for which no components exist?
  • How should we structure our integrations in order to make them easily testable?
  • What is the best way to isolate our integration code at development time from systems that are changing underneath us?
  • How can we get monitoring information beyond what Camel provides us with?
  • How do we write integrations that run in a cluster, and survive container outages with no message loss?
  • How do we scale out our routes to handle greater throughput?

Camel provides you with an engine for integration that runs in any Java virtual machine. This means that you can write Camel code to run inside any environment; ranging from a Spring Boot application, a web container like Tomcat, inside a message broker like ActiveMQ, all the way to a container tailored to running Camel integrations – ServiceMix.

Whichever environment you choose to develop for, we will steer you in the right direction and make sure that your team has enough information to build scalable, performant and most importantly correct system integrations.

If this sounds like it might be of interest, take a look at how we work, and get in touch.