Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Apache Camel and other ESB products

Hey,
If we have Apache Camel why to use other solutions like Apache ServiceMix and Mule?
Is there something Apache Camel can't do comparing to these products?
When to use Mule/ServiceMix and when to use Camel?

like image 887
Chiron Avatar asked Sep 25 '10 04:09

Chiron


People also ask

Is MuleSoft based on Apache Camel?

Both platforms are open-source, but they differ significantly in their implementation of the open-source model. Apache Camel is a free standalone program supported solely by its community of developers. Mule ESB is the runtime engine of MuleSoft's Anypoint Platform, a licensed and professionally-supported product.

What is the difference between mule and Camel?

Camel is a mediation engine while Mule is a light-weight integration platform. The difference is that that Mule offers all the capabilities of an ESB including a container for deploying applications, REST and Web Services.

Is MuleSoft and Mule ESB the same?

Mule is a lightweight enterprise service bus (ESB) and integration framework provided by MuleSoft. The platform is Java-based but can broker interactions between other platforms such as . NET using web services or sockets.

What's the difference between Apache Camel and Kafka?

Developers describe Apache Camel as "A versatile open source integration framework". An open source Java framework that focuses on making integration easier and more accessible to developers. On the other hand, Kafka is detailed as "Distributed, fault tolerant, high throughput pub-sub messaging system".


1 Answers

It is now 2016 and a lot has changed since the question was initially asked, so I'd like to revisit it for new viewers.

Strategically speaking

  • Apache Camel has stayed true to its roots and has not evolved into a heavyweight nor fully-fledged runtime platform. It is versatile and modular, and can run:

    1. Embedded in any kind of Java container (servlet container, application server, Spring Boot).
    2. Standalone as a Java process.
    3. Inside an OSGi environment (Apache Karaf).
  • Apache Camel has continued to evolve and gain a traction and activity on a monthly basis, as portrayed by the graph under this point which I extracted from OpenHub. The userbase also keeps increasing.

Apache Camel Contributors per Month

  • In 2012, Red Hat acquired FuseSource, one of the main promoters and developers behind Apache Camel, ActiveMQ, ServiceMix and CXF. Several committers and PMC members are now employed by Red Hat to work on Apache Camel.

  • Mule ESB offers two versions of their product: Community (free under the CPAL license) and Enterprise (paid). They define their Community version as:

Ideal for evaluation or pre-production use.

=> Meaning that you should acquire a paid Enterprise subscription for production usage.

  • In fact, Mule ESB Community Edition is distributed under the CPAL license. This means that if you still decide to use this version, Mule REQUIRES THAT:

    • Each time an Executable and Source Code or a Larger Work is launched or initially run, a prominent display of Mulesoft's Attribution Information must occur on the graphic user interface employed by the end user to access such Covered Code (which may include display on a splash screen), if any. => Basically you need to advertise that whatever you have built with Mule is running on Mule.

    • If your deployment of Mule ESB is accessed over the network (it always will, since it's an integration platform!), you must also make the Source of your deployment available to whoever is accessing it.

  • As someone else mentioned above, Apache Camel is a completely open project and driven by the community, for the community. All the source code is publicly available, and everybody is encouraged to send in pull requests, contribute components and help or inquire in the forums. Conversely, the Mule community is a gated community.

  • Last, but not least; perhaps the most important part. Here is what Google Trends has to say about Mule ESB vs. Apache Camel. Note that I'm using the new semantic topics measurement for higher accuracy rather than the standard query keywords. That way we are not measuring the popularity of the animals (Mule vs Camel), but of the Software! Interpretation: Mule trended down heavily from 2007 until 2011, while Apache Camel trended up. Since 2011, Mule has plateaued, while Apache Camel keeps trending up healthily!

Mule vs Camel in Google Trends

Technical evolution of Apache Camel

Just wanted to give you some functional metrics on the evolution of Apache Camel since 25th September 2010, when you originally asked the question. This was the source tree at that point in time.

  • Back then, Camel had 88 components, it now has 220 components including integrations with Facebook, Twitter, Salesforce, Apache Ignite, Apache Cassandra, AWS, Apache Kafka, MongoDB, Apache Spark etc.
  • Many, many technical improvements: Async Routing Engine, Message History, Circuit Breaker EIP, many many improvements and enhancements to EIPs like Aggregation, Splitting, Dynamic Routing, etc.
  • The ecosystem has grown to now also include Hawtio for monitoring and management, fabric8 for deployment, etc.
  • Since then more than 5500 tickets have been resolved including new features, improvements, bugs, etc.
  • And much, much more!

Final notes

Both products have evolved a lot over the last 5,25 years! However, due to the difference in licenses and the community nature of Mule ESB and Apache Camel, I don't think they are comparable any longer to one another.

Apache Camel is fully Open Source ❤️, while Mule ESB Community requires users to attribute Mulesoft and to publish the source code of the software that uses Mule. The Apache Software License is a business-friendly license: you are free to use Camel without attributions nor any other requirements. Truly free as in beer!

Hope this reflection upon the last years helps new viewers! :)


Disclaimer: I am a committer and PMC member at the Apache Camel project.

like image 94
raulk Avatar answered Oct 05 '22 08:10

raulk