Apache Camel is an open source integration platform.
N/A
Google Cloud Functions
Score 9.1 out of 10
N/A
Google Cloud Functions enables users to run code in the cloud with no servers or containers to manage. Cloud Functions is a scalable, pay-as-you-go functions as a service (FaaS) product to help build and connect event driven services with simple, single purpose code.
N/A
Mule ESB
Score 9.0 out of 10
N/A
Mule ESB, from Mulesoft, is an open source middleware solution.
Message brokering across different systems, with transactionality and the ability to have fine tuned control over what happens using Java (or other languages), instead of a heavy, proprietary languages. One situation that it doesn't fit very well (as far as I have experienced) is when your workflow requires significant data mapping. While possible when using Java tooling, some other visual data mapping tools in other integration frameworks are easier to work with.
It is easy to use, in 15 minutes you just have to follow a few steps, do some easy configurations and you have the project ready to run, once it is connected to the codebase, the execution is automatic. For anyone coming into the google environment, Functions make code execution easy and transparent. CI/CD is perfect
If you’re bringing anything into Salesforce you should just invest now into Mule, you will get your money’s worth and find a myriad of uses to build APIs between many other systems. Once you build a component you can easily reuse it as a building block to attach to another source/destination. This makes it easy to ramp up quickly and spread usage of Mule throughout your enterprise. A good value for medium to large companies, but probably cheaper to outsource your job to a consulting firm if you are smaller.
Camel has an easy learning curve. It is fairly well documented and there are about 5-6 books on Camel.
There is a large user group and blogs devoted to all things Camel and the developers of Camel provide quick answers and have also been very quick to patch Camel, when bugs are reported.
Camel integrates well with well known frameworks like Spring, and other middleware products like Apache Karaf and Servicemix.
There are over 150 components for the Camel framework that help integrate with diverse software platforms.
It is best suited for Rest API development. Mule ESB uses RAML as an API descriptor which is less complex and easy to understand. RAML is an open standard majorly supported by Mulesoft. Once RAML is developed, it is very easy (a few clicks)to create flows corresponding to the resources defined in the RAML. One can also include JSON schema validation in RAML, and with the use of APIkit router, Mule ESB makes the request validation very easy (it's automatic basically.)
Mule ESB comes with a large spectrum of community and enterprise connectors. We have connectors for all the major platforms like Facebook, Twitter, Salesforce, SAP, etc. This enables Mule ESB to integrate with the other systems in a faster and more robust way. Mule ESB has many components to fulfill the requirements of each integration (for example batch processing, parallel processing, choice, etc.)
Mule API gateway is one of the best tools (modules) of Mulesoft's offering. It supports API governance and management very well. One can easily enforce policies on their APIs with API gateway. It enables some of the must-have features in an API solution (i.e. throttling, oAuth, access levels, etc.)
Implementing a CI/CD (DevOps) environment for Mule ESB is a very easy task. Mule majorly uses MAVEN as its build tool, which in turn makes it best suitable for CI/CD approach. Mule also provides MAVEN plugins for auto deployments to the servers. Mule also has a best Unit testing module which is MUnit. MUnit can be used for both Unit and Functional testing, and it is easy to write and generates coverage reports in various formats.
Overall Google Cloud Functions is losing a lot of benefits to other GCP services, making it less attractive to users. A simple example would be the need to zip application files and push them to Google Storage which makes it a bit complicated to automate via a CI/CD pipeline. Another "similar" solution would be using Cloud Run although the need for a docker image is there, with the recent evolutions to Cloud Run (ability to downscale to 0) it makes a lot more interesting.
Documentation is provided and clear for this service. Although GCP support is included in the current contract we didn't get to use it since the process is pretty straightforward.
If you are looking for a Java-based open source low cost equivalent to webMethods or Azure Logic Apps, Apache Camel is an excellent choice as it is mature and widely deployed, and included in many vendored Java application servers too such as Redhat JBoss EAP. Apache Camel is lacking on the GUI tooling side compared to commercial products such as webMethods or Azure Logic Apps.
It is easier to keep everything in house when we are using GCP or AWS. To mix Lambda with google cloud is not a best practice and will cause problems ahead. The segmentation is clear, if you are using google, you use Google Cloud Functions. if you are on Amazon, you use all AWS tools. You can't mix them. The price is set.
Very fast time to market in that so many components are available to use immediately.
Error handling mechanisms and patterns of practice are robust and easy to use which in turn has made our application more robust from the start, so fewer bugs.
However, testing and debugging routes is more challenging than working is standard Java so that takes more time (less time than writing the components from scratch).
Most people don't know Camel coming in and many junior developers find it overwhelming and are not enthusiastic to learn it. So finding people that want to develop/maintain it is a challenge.