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
TIBCO BusinessEvents
Score 8.0 out of 10
N/A
Enterprises are surrounded by hundreds of thousands of events that occur continuously. Hidden amongst them can be stalled business processes, opportunities for value creation, potential fraud, dissatisfied customers, failing equipment, and more. TIBCO BusinessEvents® proactively identifies these critical events, responds intelligently in real-time to navigate the fast-moving business environments and optimize outcomes. Decision-making in businesses requires a comprehensive…
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.
TIBCO BusinessEvents is part of the CEP (Complex Event Processing) family, this means that it fits perfectly in all those scenarios where a correlation between incoming events is required. Where a stateful process is necessary. It does not fit well for a kind of Process Orchestrator scope, where simple events are coming in, and there is a well-defined behavior the system, would have on incoming request, and no particular reason to use a rule engine and its complexity. Anyway, there are particular cases where BusinessEvents would be a good actor in orchestrating a portion of CEP solutions activities
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).
It allows us to build rule-based model-driven application, to collect, filter, analyze, correlate various business events in our real-time event flow
It makes various business applications/components easy to integrate (loosely decoupled but chained via the events flow) together
Its distributed rule engine and embedded in-memory data grid (ActiveSpace) gives us a lot of flexibility and room to play with a large amount of rules and data with high performance
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
Better integration with R versions and better debug for R-scripts in Spotfire. There are inconsistencies in syntactic expressions accepted by R-studio and not accepted in Spotfire. Accelerating the debug would be awesome. Having a command like View (data frame) that directly output in the dashboard would be a great accelerator.
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.
I was not part of evaluation of the products in this space in my organization. But I feel BE is better in terms of RIO if compared with some commercial products from Orcle, IBM and SAP. I strongly feel difficulty in using cloud native features is one big shortcoming in current product offering. This will tend customer like us to explore options that are well suited with ur cloud first vision.
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.