Apache Camel is an open source integration platform.
N/A
Google Cloud Run
Score 8.7 out of 10
N/A
Google Cloud Run enables users to build and deploy scalable containerized apps written in any language (including Go, Python, Java, Node.js, .NET, and Ruby) on a fully managed platform. Cloud Run can be paired with other container ecosystem tools, including Google's Cloud Build, Cloud Code, Artifact Registry, and Docker. And it features out-of-the-box integration with Cloud Monitoring, Cloud Logging, Cloud Trace, and Error Reporting to ensure the health of an application.
N/A
Mule ESB
Score 7.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.
Microservices and RestFul API application as it is fast and reliant. Seamless integration with event triggers such as pubsub or event arc, so you can easily integrate that with usecases with file uploads, database changes, etc. Basically great with short-lived tasks, if however, you have long-running processses, Cloud Run might not be idle for this. For example if you have a long running data processing task, other solutions such as kubeflow pipelines or dataflow are more suited for this kind of tasks. Cloud Run is also stateless, so if you need memory, you will have to connect an external database.
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.
The UI can be made simpler. Currently the UI is bloated and it takes time to find out what you want
More integrations with container registry providers (ECR, dockerhub)
Better permissions UX. Currently GCP requires service accounts to be used with cloud products, the experience adding/removing permissions is difficult to navigate
The UI/console is great... the documentation is top-notch for developers, but the CLI itself when you have to script around it is very complex and easy to forget some options... the downside of a generic command line client.
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.
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.