Apache Kafka is an open-source solution that can be used for messaging or event processing.
Apache Kafka has performance issues that cause it to lag.
We did a couple of POCs on Apache Kafka for more than two years for messaging and event processing.
I rate Apache Kafka an eight out of ten for stability.
I rate Apache Kafka a seven out of ten for scalability.
Since it's an open-source solution, there is no technical support, and users often rely on the community edition.
I have previously worked with Confluent and Anypoint MQ. Confluent is completely an event-driven architecture. Anypoint MQ is a typical messaging software and cannot be used for an event-driven architecture.
The solution's initial setup is quite straightforward. You just have to upgrade a couple of configuration files.
Apache Kafka is an open-source solution.
A non-enterprise business with a low message load can use an open-source solution like Apache Kafka.
I would recommend the solution to enterprise businesses depending on their use cases. Suppose an enterprise business doesn't have any integration or a middleware platform and wants to do a greenfield implementation. I'll evaluate the use cases and refer Apache Kafka to them if messaging is needed only for exception handling or transferring the messages.
I have recommended Apache Kafka to some customers who wanted asynchronous messaging for logging purposes. Those messages were not business-critical messages as such.
I would recommend Apache Kafka to other users. Apache Kafka is more relevant when we use open-source integrations and when customers want to reduce the TCO. As an architect, I recommend the solution to customers based on their messaging needs. Apache Kafka and Anypoint MQ are the only two messaging products available today. The open-source Apache Kafka is always recommended if the customer really doesn't want to get into any of the license models.
Overall, I rate Apache Kafka an eight out of ten.