Apache Camel and other ESB products

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

+60
apache-camel esb mule servicemix
Sep 25 2018-10-10T00:
source share
7 answers

Apache Camel is a library that implements enterprise integration patterns (EIP). Although it can use Spring as its IOC infrastructure, it is not even dependent on Spring, so it is completely platform independent. This is a "just" library. This way you can run it in any JVM environment, for example. simple jvm, servlet, ejb, osgi. This does not bring any benefits (or overhead) to a container such as Mule. This, in my opinion, is a cleaner separation of problems in this area.

Mule can also be embedded in different environments, but I think that Mule has both advantages and disadvantages of linking its EIP library with their container. When you deploy Mule inside a servlet or ejb environment, do you really want to carry all this Mule container baggage? I'm not a Mule expert, and I think you can probably spend relatively modest efforts and eliminate some of the redundant features. (Note that this is not a bad feature in all cases, it is simply redundant if you run the built-in in another container.)

Apache ServiceMix is ​​an OSGI container that Camel uses to implement EIP as the foundation of ESB. Although ServiceMix historically began with its roots in JBI, it moved away from JBI and evolved into (IMO) a beautiful layered architecture that combines the best-in-class Apache CXF, Camel, and ActiveMQ in an OSGI container. The primary meaning here is not the ServiceMix service and its JBI support, but the basic OSGI container standard is associated with trusted Apache vehicles such as CXF for web services and ActiveMQ for JMS. OSGI is a mature standard that offers a container that accesses the same types of "DLLs" that Microsoft pursued before the advent of .NET. Although neither .NET nor OSGI solves the substantial complexity of the underlying problem, they at least provide a means to solve it. OSGI has other advantages, but from the point of view of choosing a product, the main container based on standards, and its essential function, which Mule (and Java in general) does not address, is dependency management.

Some important things to consider when comparing Mule with Apache communities. The mule is like Redhat in the sense that although it is an open source license, in my opinion it is not an open community. Anyone can participate in Apache, while MuleSoft owns the Mule community and the final roadmap. Secondly, although the Mule community is probably quite active, I think the Apache community is much larger (and, naturally, because it is not a closed community). Both approaches have both pros and cons. One of the benefits of the Apache approach is the availability of several providers for ESB based on Camel, CXF, ActiveMQ and OSGI. For example, Talend offers ESBs for the same core technologies without the ServiceMix JBI history. This has both pros and cons in the Apache community, but the real point is to emphasize the difference between Apache and Mule. You will not find multidisciplinary suppliers in the Mula community. Thus, the IMO Apache ESB, such as Talend or ServiceMix, is a wider and more comprehensive and ultimately competitive community than a closed community such as Mule.

Ed ost

+60
Oct 27 2018-11-11T00:
source share

Now is the year 2016, and a lot has changed since the question was asked, so I would like to return to it for new viewers.

Strategically speaking

  • Apache Camel remained true to its roots and did not turn into a heavyweight or full-fledged runtime platform. It is universal and modular and can work:

    • Built- in any kind of Java container (servlet container, application server, Spring Download).
    • Standalone as a Java process.
    • Inside the OSGi environment ( Apache Karaf ).
  • Apache Camel continues to evolve and receive monthly cravings and activity, as shown by the graph at this point, which I extracted from OpenHub . The user base is also increasing.

Apache Camel Contributors per Month

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

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

Ideal for evaluation or pre-production.

=> Suppose you need to purchase a paid corporate subscription for use in products.

  • In fact, the Mule ESB Community Edition is licensed under the gated community .

  • Last but not least; perhaps the most important part. This is what Google Trends says about the Mule ESB vs. Apache Camel . Note that I am using the new semantic dimension of topics for higher accuracy, rather than the standard query keywords . Thus, we do not measure the popularity of animals (Mule vs Camel), but Software! Interpretation: The mule has fallen dramatically from 2007 to 2011, while Apache Camel has evolved. Since 2011, Mule has been on a plateau, and Apache Camel continues to grow healthy!

Mule vs Camel on Google Trends

The technical evolution of Apache Camel

Just wanted to give you some functional indicators of the evolution of Apache Camel from September 25, 2010, when you originally asked the question. It was the source tree at this point in time .

  • Camel had 88 components at that time, now it has 220 components, including integration with Facebook, Twitter, Salesforce, Apache Ignite , Apache Cassandra , AWS, Apache Kafka , MongoDB, Apache Spark , etc.
  • Many technical enhancements: Asynchronous routing mechanism, Message history, EIP circuit breaker, many enhancements and enhancements for EIP, such as aggregation, separation, dynamic routing, etc.
  • The ecosystem now also includes Hawtio for monitoring and management, fabric8 for deployment, etc.
  • Since then, more than 5,500 tickets have been decided, including new features, improvements, bugs, etc.
  • And many many others!

Concluding notes

Both products have changed a lot over the past 5.25 years! However, due to differences in licenses and the nature of the Mule ESB and Apache Camel communities, I don’t think they are comparable to each other.

Apache Camel is fully Open Source ❤️, and the Mule ESB Community requires users to use the Mulesoft attribute and publish source code for software using Mule. The Apache software license is a business-friendly license: you can use Camel without attributions or other requirements. Really free, like in beer!

Hope this reflection of recent years helps new viewers! :)




Disclaimer: I am a member and member of PMC in the Apache Camel project.

+48
Jan 15 '16 at 19:20
source share

My blog post answers exactly this question: http://www.kai-waehner.de/blog/2011/06/02/when-to-use-apache-camel/ => Apache Camel is an easy integration environment, ServiceMix etc. are full ESBs.

+7
Jan 11 2018-12-12T00:
source share

Apache Camel has some frequently asked questions that shed light on this http://camel.apache.org/faq

And a collection of Apache Camel links http://camel.apache.org/articles.html

There are some links where people in the community talk and compare Camel with other projects.

+4
Sep 26 '10 at 13:31
source share

Camel is a mediation mechanism, and Mule is an easy integration platform. The difference is that Mule offers all the features of an ESB, including a container for deploying applications, REST, and web services. Mule can be embedded in the same way as Camel so that application developers can implement application code with integration code there. Both integrate tightly with Spring.

Mule does not use the JBI for valid reasons , and now that the JBI specification has been discontinued (not a single Oracle-owned working group that passed the JBI originally), there is no good professional or technical reason to use the JBI.

+4
Sep 29 '10 at 2:31 p.m.
source share

Klaus, there are a number of errors in the Camel FAQ, it is not surprising that none of them are in our favor :)

  • the UMO model in Mule is no longer in Mule. We are starting to move away from this model in Mule 2, and it has completely changed in Mule 3. Now we have a very simple Message Processor model that makes your statement about this redundant.
  • Mule has had an explicit type conversion for several years, this is no different for Camel
  • Mule is licensed under an OSI approved CPAL 1.0 license. This is an open source license, not a commercial one. Please update this as soon as possible.
0
Sep 29 '10 at 14:55
source share

First you need to understand that Service Mix is ​​like a container that can run Apache Camel code, and Mule ESB is a separate product in itself

There can be many differences between ESB products.

You need to know a few things before looking for differentiation. They

  • How products are developed.
  • Licensing
  • Its support features
  • Open source or not
  • If the source code of the source can be modified and used and so on.

The above will be the best factors that you need to study before making a choice. The foregoing is common to most products, and special attention is also required here.

The secondary product difference will be specific to the tools and its domain. This is probably the answer you are looking for. Find the list that you need to study before making a choice.

  • Community support
  • Product stack
  • Extensibility in terms of changing native code
  • Skill and usability
  • Product support for purchasing as an enterprise

This is probably the study you need to do yourself to make the difference. Any way to add many additives makes the product suitable for your organization, and not the best spoken on the market.

When it comes to the Apache camel or other ESB. The difference to be made is

  • Number of vehicles
  • Apache Camel provides you with a variety of DSL over Mule, and others are that they do not have multiple DSLs, as in Camel.
  • Mule in its product stack contains API management and Cloud internal connectors, where Apache Camel is the foundation when using the FUSE ESB. JBoss Stack provides a decent number of other products that can complement your choice.
0
Apr 12 '15 at 19:52
source share



All Articles