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
Camunda
Score 7.9 out of 10
N/A
Camunda is a process orchestration tool designed to help organizations design, automate, and improve any process. Built for business and IT collaboration using BPMN and DMN standards, Camunda aims to enable seamless integration across endpoints to transform mission-critical processes.
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.
Camunda Platform is well suited for scenarios where there are different stages in a business flow and the flow is driven by user action at each stage. For example placing of an order on an ecommerce platform. Depending on whether user was able to make the payment or not the workflow would go to dispatch or retry stage. Now the retry stage would trigger further actions like sending follow up emails etc. Likewise, dispatch stage would have a different set of actions. Since every order is important and we need to know where it stands, using Camunda Platform is imperative. Camunda Platform might not be a right choice where just a one off thing needs to be done. For example, uploading of product information by user or periodic processing of heavy images by a worker. These are all either one step processes or periodic automated processes where we can track the status without using a business modeler like Camunda Platform.
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).
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
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.
Lacks good documentation. Training and documentation is geared towards those who are already technically adept. Does not have as many data integrations as other full fledged products. Paid version of Camunda is not as fully fledged as other products.
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.
The positive impact is that we are able to ensure the business process is being followed and that results in orders getting processed successfully leading to customer satisfaction and revenue
Another positive impact is that we are able to track any anomalies and any errors in the order flow and retry them so that users don't have a negative experience.
A negative point is that it is an overhead to maintain so there is significant engineering effort getting invested there