Apache Kafka is an open-source stream processing platform developed by the Apache Software Foundation written in Scala and Java. The Kafka event streaming platform is used by thousands of companies for high-performance data pipelines, streaming analytics, data integration, and mission-critical applications.
N/A
Mule ESB
Score 9.0 out of 10
N/A
Mule ESB, from Mulesoft, is an open source middleware solution.
Apache Kafka is built for scale. From high throughput and real-time data streaming, it has a strong advantage over RabbitMQ with its low latency. This put Apache Kafka at the forefront as the platform of choice for large datasets messaging and ensuring scalability when data …
Apache Kafka can work at a higher scale as compared to SQS. It can work with higher size per message and millions of messages per second. Moreover it can be scaled horizontally by adding more brokers to the cluster. SQS is good enough for simple use cases like making a task …
I used other messaging/queue solutions that are a lot more basic than Confluent Kafka, as well as another solution that is no longer in the market called Xively, which was bought and "buried" by Google. In comparison, these solutions offer way fewer functionalities and respond …
Apache Kafka is open-sourced, scales great has cloud agnostics and performs better than Amazon Kinesis [in my view]. Amazon Kinesis has some limitations and vendor lockin is not something I [like]. With Confluent operators you can easily install it on a kubernetes cluster.
We really needed to get away from using a SQL database to act as a queue for processing records, so a new solution was needed. Kafka is a leading software application initially designed for queuing messages which is essentially what we were looking for. It has a great user …
For us, Kafka really doesn't have a 1:1 alternative. We have used ActiveMQ extensively and we still use it as a lighter option for small messages. The situation is similar with Redis - although it could be used like a Kafka alternative, we do use it just as a per-component …
Apache Kafka is much more scalable and more reliable. Does not depend on memory, works well on rotational disks and that makes it a cheaper to use solution on low hardware requirements. Running multiple consumers on the same topic can also mean processing the same data again …
All stack tech helps our app and system. These technologies allow us to have the data available faster between different regions (due to our particular configuration) and thus the data and processing load of each system is lower. This allows the systems to be used more …
Kafka is not a real messaging broker implementation as RabbitMQ or TIBCO EMS/JMS are. Although it can be used as messaging, we like the idea behind the Kafka (data isn't "passing by," instead it remains centra, so the client can revisit the data if necessary). This also …
Confluent Cloud is still based on Apache Kafka but it has a subscription fee so, from a long term perspective, it is wiser to deploy your own Kafka instance that spans public and private cloud. Amazon Kinesis, Google Cloud Pub/Sub do not do well for a very number of messages …
I would only use RabbitMQ over Kafka when you need to have delay queues or tons of small topics/queues around. I don't know too much about Pulsar - currently evaluating it - but it's supposed to have the same or better throughput while allowing for tons of queues. Stay tuned - I …
Kafka is faster and more scalable, also "free" as opensource (albeit we deploy using a commercial distribution). Infrastructure tends to be cheaper. On the other hand, projects must adapt to Kafka APIs that sometimes change and BAU increases until a major 1.x version comes out …
Hands down, Mule is more cost-effective than Informatica, either on-prem or cloud, and the value only goes up form there. Reusability and ease of creation makes in-house training simple and the end result is we leverage Mule for much more than what we initially considered it …
I have worked with Oracle SOA Suite and I think if you have APIs with most of the integration with databases (majorly Oracle DB) then you should use Oracle SOA Suite instead of Mule. Oracle SOA Suite is most suitable to call most of the DB objects (i.e. procedures , functions, …
It is a great product, just very expensive and did not have the connectors. For larger companies it works well and is very reliable, but it requires special skills and support staff to manage the performance and scaling attributes. Both tools can do the job, it just depends …
Apache Kafka and Mule ESB are both enterprise service bus (ESB) and integration platforms, which allow users to capture real-time data from multiple sources. Apache Kafka is robust and complex for large companies with ESB experience, while Mule ESB’s easy to use interface will come in handy for those newer to integration platforms.
Features
Though both Apache Kafka and Mule ESB are used by enterprise-level companies, there are a few standout features of each that differentiate them.
Apache Kafka is, in essence, a message-brokering platform that delivers data from one point to another. Its uniqueness lies in its ability to distribute, store and process events. Users report that Apache Kafka is easy to configure and handles large amounts of data from different sources with ease. Its flexibility allows for success when handling millions of small files or a small number of large files, and it will accommodate bursts of traffic as well. Kafka is stable, secure, and well supported by Apache, so it can be a mission-critical part of a system without worry that it will fail. The fact that Apache continues to develop and improve it inspires confidence that it won’t go away anytime soon.
Mule ESB is a middleware tool for integrating various applications with each other. It is highly valued by its users for the sheer number of connections that are available. Most connections can be implemented via a drag and drop interface, making it easy to use for beginners. Mulesoft is a SalesForce company, so Salesforce integrations are robust yet simple. Pre-built connectors and templates make Mule ESB even faster to set up.
Limitations
Each of these ESB products has its own set of limitations.
Apache Kafka, while robust, does not support wildcard topic selection, but matches only specific topic names. Handling a large number of topics can make Kafka grind to a halt. Though it has monitoring tools, users report that the selection of these tools is incomplete. Handling of duplicate messages could be improved, as could load balancing and restart. The product documentation can be difficult to follow.
While many appreciate how lightweight Mule ESB is, it can slow down when handling bigger applications or large amounts of messages, and frequent patches imply instability. Troubleshooting can be difficult, and some data types are conspicuously unavailable. Some users also note that the price is a little high for them.
Pricing
As an open-source product, Apache Kafka is free to download and install. Mule ESB is part of the Mulesoft Anypoint Platform, which has a 30-day free trial. Contact Mulesoft to learn more about subscription pricing.
For brokering messages, Confluent Kafka is well suited since it offers a managed solution ready to use. Scenarios where the solution is not very well suited are for example, where pricing is an issue. The solution costs quite a lot for basic usage (for example: for 3 clusters, pricing is above 100k$ a year).
Apache Kafka is able to handle a large number of I/Os (writes) using 3-4 cheap servers.
It scales very well over large workloads and can handle extreme-scale deployments (eg. Linkedin with 300 billion user events each day).
The same Kafka setup can be used as a messaging bus, storage system or a log aggregator making it easy to maintain as one system feeding multiple applications.
The Kafka Tool is a community-made Java application that looks and feels from the past century.
Logging can be confusing. This certainly shows when we have to do troubleshooting.
Hybrid scenarios - pub/sub, but there are services in and outside a Kubernetes cluster. Then there are a ~3 options, but only 2 (the harder ones) are production-safe.
Kafka has suited our use case very well so far. Going forward we are planning to expand our platform manifold so the load on Kafka and our reliance on Kafka is going to increase only.
Apache Kafka is highly recommended to develop loosely coupled, real-time processing applications. Also, Apache Kafka provides property based configuration. Producer, Consumer and broker contain their own separate property file
Support for Apache Kafka (if willing to pay) is available from Confluent that includes the same time that created Kafka at Linkedin so they know this software in and out. Moreover, Apache Kafka is well known and best practices documents and deployment scenarios are easily available for download. For example, from eBay, Linkedin, Uber, and NYTimes.
Apache Kafka is built for scale. From high throughput and real-time data streaming, it has a strong advantage over RabbitMQ with its low latency. This put Apache Kafka at the forefront as the platform of choice for large datasets messaging and ensuring scalability when data scale up tremendously. RabbitMQ however has its strengths in traditional messaging. Routing and message delivery reliability are the bedrock of RabbitMQ and this is where RabbitMQ excels. In my previous workplace, RabbitMQ was of choice as reliability matters more than scale. In two words. Apache Kafka for scale, RabbitMQ for reliability. And for cloud deployment and large dataset messaging in what I am doing now, Apache Kafka is the default choice.
Hands down, Mule is more cost-effective than Informatica, either on-prem or cloud, and the value only goes up form there. Reusability and ease of creation makes in-house training simple and the end result is we leverage Mule for much more than what we initially considered it for. Having used Oracle and TIBCO before as well, I find they are the tools of yesterday, not able to keep up in terms of functionality or price. Jitterbit would be a more relevant comparison, but Mule won out in the bake-off we did between them.
Positive: bursts of traffic on special holidays are easy to handle because Kafka can absorb and buffer all the messages we need to process long enough to let an understaffed set of back-end services catch up on processing. Hard to put a number to it but we probably save $5k a month having fewer machines running.
Positive: makes decoupling the web and API services from the deeper back-end services easier by providing topics as an interface. This allowed us to split up our teams and have them develop independently of each other, speeding up software development.
Negative: our engineers have made mistakes such as accidentally dropping a few thousand messages due to the CLI being confusing to use, and as a result a customer lost some of their precious data. I'd say that was more our fault than Kafka's though.