What is the difference between Apache Camel and JBoss Fuse?

To expand on Mohammed's answer:

Apache Camel is a container agnostic mediation and routing engine, running on Java and implementing Enterprise Integration Patterns. There are a couple of hundred Camel components providing access to may different protocols (file:, http:, ftp:, jms:, amqp:, etc.) and providers (AWS, DropBox, GitHub, etc.).

Red Hat JBoss Fuse, formerly FUSE ESB from FuseSource.com, is a commercial implementation of Apache ServiceMix. Apache ServiceMix is an Integration Framework, built on OSGi (runtime), which includes Apache Karaf (OSGi container; not part of the OSGi spec), Apache Camel (mediation and routing engine), Apache ActiveMQ (reliable messaging), CXF (web services framework), and a few other bits.

You can run Camel a number of different ways, including stand-alone, inside a Java EE deployment, on OSGi (with or without Karaf), or pretty much anywhere you're on Java. It looks like Red Hat is going to be pushing folks to use Spring Boot on OpenShift to run Camel.


Apache Camel is a versatile open-source integration framework based on known Enterprise Integration Patterns. Camel empowers you to define routing and mediation rules in a variety of domain-specific languages, including a Java-based Fluent API, Spring or Blueprint XML Configuration files, and a Scala DSL. So from this definition you can conclude that Apache Camel is an integration framework, Which means you have a set of libraries to build applications. As we know each application needs to be run on an environment. Apache Camel application can be run in these ways:

1- Standalone. For more information about standalone running Camel Standalone Running

2- On OSGI container. Apache Camel is designed to work nicely into Apache Karaf OSGi container. You can say that Redhat Fuse provides support for running Camel Application through Apache Karaf in addition to the support of Fuse for technologies that Apache Camel uses like ActiveMQ and CXF. see https://developers.redhat.com/products/fuse/overview/ for more explanation.

You can use Camel to build micro service applications by writing your Camel Routes inside your Camel Context, package them as bundles using mvn for example and deploy it on Redhat Fuse Karaf container. Each route consists of endpoints that represent different technologies may be CXF for SOAP and REST, files and a lot of type of endpoints to help you in integration process.