How does Camel compare to Mule?

Icon

This FAQ entry was written when Mule 1.x and 2.x existed. It doesn't cater for how Mule may go in Mule 3.x.

I guess from 30,000 feet they're kinda similar beasts; they're both kinds of routing/mediation engines. The main differences are as follows

  • Camel uses a Java Domain Specific Language in addition to Spring XML for configuring the routing rules and providing Enterprise Integration Patterns
  • Camel's API is smaller & cleaner (IMHO) and is closely aligned with the APIs of JBI, CXF and JMS; based around message exchanges (with in and optional out messages) which more closely maps to REST, WS, WSDL & JBI than the UMO model Mule is based on
  • Camel allows the underlying transport details to be easily exposed (e.g. the JmsExchange, JbiExchange, HttpExchange objects expose all the underlying transport information & behaviour if its required). See How does the Camel API compare to
  • Camel supports an implicit Type Converter in the core API to make it simpler to connect components together requiring different types of payload & headers
  • Camel uses the Apache 2 License rather than Mule's more restrictive commercial license
© 2004-2014 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.
Graphic Design By Hiram