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
WSO2 Enterprise Service Bus
Score 7.1 out of 10
Enterprise companies (1,001+ employees)
WSO2 says they have taken a fresh look at old-style,
centralized ESB architectures, and designed their unique WSO2 Enterprise Service Bus
from the ground up as the highest performance, lowest footprint, and most
interoperable service oriented architecture (SOA) and integration middleware
today. Additionally, the vendor says that by relying on their carbon technology
the ESB is able to deliver a smooth start-to-finish project experience.
Apache Kafka is well-suited for most data-streaming use cases. Amazon Kinesis and Azure EventHubs, unless you have a specific use case where using those cloud PaAS for your data lakes, once set up well, Apache Kafka will take care of everything else in the background. Azure EventHubs, is good for cross-cloud use cases, and Amazon Kinesis - I have no real-world experience. But I believe it is the same.
WSO2 ESB is an awesome product for companies looking to venture into the world of SOA with an ESB. They have a lot of other products too that can work really well with their carbon infrastructure. The interface is simple for deploying and managing proxy services. You can also write custom modules within the ESB using Java with IDE like Eclipse
Really easy to configure. I've used other message brokers such as RabbitMQ and compared to them, Kafka's configurations are very easy to understand and tweak.
Very scalable: easily configured to run on multiple nodes allowing for ease of parallelism (assuming your queues/topics don't have to be consumed in the exact same order the messages were delivered)
Not exactly a feature, but I trust Kafka will be around for at least another decade because active development has continued to be strong and there's a lot of financial backing from Confluent and LinkedIn, and probably many other companies who are using it (which, anecdotally, is many).
One of the basic requirement of an ESB product is that it should be able to support transformation. WSO2 ESB provides support of XSLT, so you can transform your request to whatever format. Moreover, transformations like converting your xml payload into JSON and JSON payload to XML are out of the box available.
WSO2 ESB provides a scheduler feature, by which you can configure your own scheduler to call a proxy service at a particular time of day or or initiate sequence.
WSO2 ESB provides excellent error handling techniques, WSO2 ESB provides detailed error handling scenarios to tackle all the situations. WSO2 ESB also provides custom error handling by which you can make your own custom error message before sending it back to client.
Sometimes it becomes difficult to monitor our Kafka deployments. We've been able to overcome it largely using AWS MSK, a managed service for Apache Kafka, but a separate monitoring dashboard would have been great.
Simplify the process for local deployment of Kafka and provide a user interface to get visibility into the different topics and the messages being processed.
Learning curve around creation of broker and topics could be simplified
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
Lack of auto-restart built-in capabilities. In case of running out of memory there are no built-in methods to recover from a crash, just for example, Oracle WebLogic Node Manager.
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.
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 to other needs.
Positive: Get a quick and reliable pub/sub model implemented - data across components flows easily.
Positive: it's scalable so we can develop small and scale for real-world scenarios
Negative: it's easy to get into a confusing situation if you are not experienced yet or something strange has happened (rare, but it does). Troubleshooting such situations can take time and effort.