Senior Technical Architect at a computer software company with 51-200 employees
Real User
Its publisher-subscriber pattern has allowed our applications to access and consume data in real time.
Pros and Cons
  • "I like the performance and reliability of Kafka. I needed a data streaming buffer that could handle thousands of messages per second with at least one processing point for an analytics pipeline. Kafka fits this requirement very well."
  • "As an open-source project, Kafka is still fairly young and has not yet built out the stability and features that other open-source projects have acquired over the many years. If done correctly, Kafka can also take over the stream-processing space that technologies such as Apache Storm cover."

How has it helped my organization?

Through its publisher-subscriber pattern, Kafka has allowed our applications to access and consume data at a real time pace.

What is most valuable?

I like the performance and reliability of Kafka. I needed a data streaming buffer that could handle thousands of messages per second with at least one processing point for an analytics pipeline. Kafka fits this requirement very well, as it is a fast, distributed message broker. It definitely does exactly what it is designed to do.

What needs improvement?

As an open-source project, Kafka is still fairly young and has not yet built out the stability and features that other open-source projects have acquired over the many years. If done correctly, Kafka can also take over the stream-processing space that technologies such as Apache Storm cover.

Currently, as it is in the big/fast data integration world, you need to piece together many different open-source technologies. For example, to create a reliable, fault-tolerant streaming processing system that ingests data, you need:

  • a producer service
  • an event/message buffer such as Kafka or a message queue
  • a stream processing consumer such as Spark, Flink, Storm, etc.
  • something to help facilitate the ingestion into target datasources such as Flume or some customized concoction.

This is simply to ingest the data and does not necessarily account for the analytical pieces, which may consist of Spark ML, SystemML, ElasticSearch, Mahout, etc.

What I'm getting at is basically the need for a Spring framework of big data.

What do I think about the stability of the solution?

The only stability issues we had were mostly a result of the evolving APIs and existing bugs.

Buyer's Guide
Apache Kafka
April 2024
Learn what your peers think about Apache Kafka. Get advice and tips from experienced pros sharing their opinions. Updated: April 2024.
769,334 professionals have used our research since 2012.

What do I think about the scalability of the solution?

Kafka is designed to be very easily scalable so I did not have any trouble here.

How are customer service and support?

We used the open-source version and did not buy support from Confluent.

Which solution did I use previously and why did I switch?

We did not have any other previous solutions. Our project was green field and a new type of project development.

How was the initial setup?

Initial setup was straightforward. We simply hosted multiple Kafka brokers and ZooKeeper servers on AWS EC2 instances.

What about the implementation team?

We implemented it in-house and then went with the Hortonworks Data Platform distribution.

Which other solutions did I evaluate?

We evaluated AWS Kinesis as well.

What other advice do I have?

Kafka is open source and requires an administrator to maintain the servers.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
ShoaibKhan - PeerSpot reviewer
Technical Specialist at APIZone
Real User
System for email and other small devices that allows for a continuous relay of transactions
Pros and Cons
  • "This is a system for email and other small devices. There has been a relay of transactions continuously over the last two years it has been in production."
  • "The management overhead is more compared to the messaging system. There are challenges here and there. Like for long usage, it requires restarts and nodes from time to time."

What is our primary use case?

This is a system for email and other small devices. There has been a relay of transactions continuously over the last two years it has been in production.

What is most valuable?

Besides better stability and scalability, there are no additional functionalities I'd like to see. Kafka is good at what it does.

What needs improvement?

The management overhead is more compared to the messaging system. There are challenges here and there. Like for long usage, it requires restarts and nodes from time to time.

For how long have I used the solution?

We started using this solution two years ago.

What do I think about the stability of the solution?

There are issues with stability. It's not 100% stable like ActiveMQ, but it's maybe 98% stable.

What do I think about the scalability of the solution?

With the containerized version we have used, we have faced challenges with the scalability.

How was the initial setup?

Initial setup was not easy. It requires intermediate skills.

What's my experience with pricing, setup cost, and licensing?

This is an open-source version.

What other advice do I have?

I would rate this solution 8 out of 10.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Buyer's Guide
Apache Kafka
April 2024
Learn what your peers think about Apache Kafka. Get advice and tips from experienced pros sharing their opinions. Updated: April 2024.
769,334 professionals have used our research since 2012.
Vice President at a consultancy with 51-200 employees
Real User
Open - Source, integrates well with external systems, and has a built-in failover
Pros and Cons
  • "It is the performance that is really meaningful."
  • "More Windows support, I believe, is one area where it can improve."

What is our primary use case?

We use Apache Kafka for our messaging. 

We publish a message and ask the subscriber to listen to it. We use it to save events generated by integration with external systems. There are external events, that are first published to our Kafka queue, and then to a topic, and then we save it to our own data storage system.

What is most valuable?

I believe that the speed, and especially the performance, are very good features.

Also included is a cluster with built-in failover. 

It is the performance that is really meaningful.

In terms of features, we are satisfied. I don't require any additional features. I don't believe we require any additional features at this time.

What needs improvement?

More Windows support, I believe, is one area where it can improve. We need to wrap it as a service, but there isn't one built into Windows. So that's something they could improve.

I believe Windows Server is primarily aimed at the Windows shop or those who use Windows.

For how long have I used the solution?

I don't recall the specific version that we are using, it may be Kafka 2.11, but it is not the latest one.

What do I think about the stability of the solution?

It's stable. However, the Windows Service is not very stable because it is a wrapper.

What do I think about the scalability of the solution?

We are a small team with a few people.

We might increase our usage in the future.

How are customer service and support?

We don't get in touch with technical support. We rely on open-source software. We haven't used the help of technical support. We did not seek assistance. As a result, I have no opinion on the subject.

Which solution did I use previously and why did I switch?

This is the first product we have used. We didn't have anything prior to that.

How was the initial setup?

The initial setup is straightforward. It's easy to set up.

It took a few days to get it up and running.

We only need one or two engineers to keep this solution running. We basically let it run and monitor what's going on. We usually don't touch it unless something goes wrong.

What about the implementation team?

We deployed it ourselves.

What's my experience with pricing, setup cost, and licensing?

It's free. We use the free version.

Which other solutions did I evaluate?

VMware RabbitMQ and ActiveMQ are products that are not being used by us. I wanted to look into it. But we use different things.

We compared our findings to those of other researchers. We are primarily concerned with performance. Kafka is unquestionably the performance leader.

What other advice do I have?

I would recommend trying this solution, but you should probably run it on Linux.

I like this product, I would rate Apache Kafka a nine out of ten.

Which deployment model are you using for this solution?

On-premises
Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
RABBAHMahmoud - PeerSpot reviewer
Senior Technical Architect at RABBAH SOFT
Real User
Top 5
Enables us to move data from static files to a legacy system
Pros and Cons
  • "Scalability is very good."
  • "In the next release, I would like for there to be some authorization and HTL security."

What is our primary use case?

I'm a software architect. The use case will depend my customers. They usually use it for data transfer from static files to a legacy system.

What needs improvement?

In the next release, I would like for there to be some authorization features and HTL security. 

We also need bigger software and better monitoring. 

For how long have I used the solution?

I have been using Apache Kafka for the last ten years. 

What do I think about the stability of the solution?

The stability is good. We've never had any issues. 

What do I think about the scalability of the solution?

Scalability is very good. 

How are customer service and technical support?

I have never needed to contact technical support. My colleagues get support from here, in Morrocco. 

How was the initial setup?

The setup is not a big deal for us. We can handle it. After the system is set up, the person who administers it has to do so with Apache Kafka.

Depending on the setup, it will usually take two weeks.

What other advice do I have?

I would rate it a nine out of ten. Not a ten because of the monitoring and admin improvement I'd like for them to make. 

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user642168 - PeerSpot reviewer
Big Data Lead at a marketing services firm with 51-200 employees
Vendor
We use it as an MQ. From it, we have several consumers like Secor that upload raw data to S3.

What is most valuable?

We are using Kafka consumer and producer.

How has it helped my organization?

We are using Kafka as MQ; our servers generate events which are being sent to Kafka. From Kafka, we have several consumers like Secor (https://github.com/pinterest/secor) that upload raw data to S3; Spark stream that is doing aggregations and saving the result in Cassandra; and Druid for OLAP.

What needs improvement?

  • Maintenance: Sometimes brokers disconnect and there are repartitions issues.
  • Built-in monitoring application for Kafka infrastructure.
  • UI for Kafka would also be great (similar to http://www.kafkatool.com/).

For how long have I used the solution?

I have used this product for two years.

What do I think about the stability of the solution?

We used to have problems in Kafka every three weeks and our dev ops team fixed a few issues. For the last six months, there have been no production problems, but during the time Kafka was not stable, it was not easy to understand what was wrong and how to fix it.

What do I think about the scalability of the solution?

We have not encountered any scalability issues yet. We are growing and currently, we manage 1M events per second in Kafka.

How are customer service and technical support?

We need more documentation regarding maintenance issues.

Which solution did I use previously and why did I switch?

I used RabbitMQ and ActiveMQ. Kafka is the standard, so there is no question what to use (unless you need better performance, like in ZeroMQ).

Which other solutions did I evaluate?

We did not evaluate other options as Apache Kafka is the standard.

What other advice do I have?

Read the documentation and understand the offset issues (where to save them, read from start to end).

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
it_user660627 - PeerSpot reviewer
Senior Software Engineering Consultant at a tech services company with 51-200 employees
Consultant
It offers throughput with built-in fault-tolerance and replication.
Pros and Cons
  • "Kafka, as compared with other messaging system options, is great for large scale message processing applications. It offers high throughput with built-in fault-tolerance and replication."
  • "Kafka requires non-trivial expertise with DevOps to deploy in production at scale. The organization needs to understand ZooKeeper and Kafka and should consider using additional tools, such as MirrorMaker, so that the organization can survive an availability zone or a region going down."

How has it helped my organization?

I used Kafka with a client to decouple applications with different availability profiles. Before using a messaging-based architecture with Kafka as the messaging system, the client used a coordinator application to fire off various posts to as many as eight other applications. With an application that's impacting at least a customer a second in airports, where the customers demand that the system always works, there were issues with ensuring high availability.

A typical way to calculate system availability is: Availability = Uptime/(Uptime + Downtime). Hence, where there are two applications involved with a 99% availability, the total system availability degrades quickly: 99% * 99% = 98.01%.

With eight applications, total availability caused issues. However, only two systems needed to provide real-time responses, while other systems were for payment processing, CRM, promotions, etc. It was OK if those systems were not up to date in real time.

Kafka allowed the client to have temporal decoupling for writes, i.e., the flaky third-party CRM system did not need to be available at the moment for us to respond to a user with a successful response. The availability concerns shifted to Kafka, which is a better trade off because it's built for this.

Another benefit, though not required, was the addition of logical decoupling between applications. Additional consumers could be built to overlay concerns of analytics, but the systems responsible for creating the entities on a given topic did not need to be aware of the analytics applications. This simplifies the interaction between applications and concerns of an organization.

Another benefit of this architecture is that testing is simplified. A given application needs to be tested to obey a contract of reading a message and producing another message. A Kafka topic acts as the boundary for an integration test.

What is most valuable?

Kafka, as compared with other messaging system options, is great for large scale message processing applications. It offers high throughput with built-in fault-tolerance and replication.

Messaging systems in general allow for logical and temporal decoupling between applications. Given Kafka's high availability, it's a great option to use if applications require availability, but not real-time processing.

If a downstream system is offline, messages can queue up and process when possible, but the user may not necessarily need to be aware of any issues.

A messaging-based architecture becomes important as a set of micro-services need to scale with high availability. Kafka is a great choice for messaging with such architecture.

What needs improvement?

Kafka requires non-trivial expertise with DevOps to deploy in production at scale. The organization needs to understand ZooKeeper and Kafka and should consider using additional tools, such as MirrorMaker, so that the organization can survive an availability zone or a region going down.

Shifting availability concerns to Kafka means that it cannot go down. It's important to understand the partitioning model and replication needs before relying on it for critical business functions. I'd suggest using it with a feature toggle for a non-critical path in production and learning from failure before relying on it.

While Kafka is built to scale, that does not mean that applications can start as many consumers or producers without consideration for how Kafka brokers will perform. Considerations about scaling out brokers need to occur before publishing millions of messages.

What do I think about the stability of the solution?

Generally, there were no stability issues. However, there was one scare in production when a consumer rebalance took 30 minutes and messages were not being processed during that time.

What do I think about the scalability of the solution?

We have not yet had scalability issues!

How are customer service and technical support?

There are specialized consulting companies in this space and there are online resources to read. That may help companies get past hurdles.

Which solution did I use previously and why did I switch?

No, we did you use a previous messaging system.

How was the initial setup?

The setup was complex. One must consider setting up ZooKeeper, Kafka, multi-zone/region availability, as well as typical associated functions for running it all in production. This includes monitoring, message schema changes (consider Avro), encrypting messages if it's a concern, potentially authorization for different topics depending up on the sensitivity of data.

If an organization uses Kafka as the first messaging system, then the approach for application design must also shift significantly.

What's my experience with pricing, setup cost, and licensing?

It is open source software.

Which other solutions did I evaluate?

The client evaluated alternatives before I arrived, but I was not there during the evaluation so I cannot comment.

What other advice do I have?

Consider using a managed Kafka service, such as from Heroku.

If messaging is not a central component of the business and vendor lock-in is less of a concern, consider using something like Amazon's Kinesis. This can more rapidly provide the benefits of a messaging service without the pain of understanding it deeply, setting it up, and managing it.

It's important to use a lean approach to understand how it will break in production.

Implement a non-critical transaction with it.

Perhaps use a feature toggle within a facade and implement the behavior with the old approach and with Kafka to reduce risk.

Add it to one or two applications and monitor how it goes.

Figure out security, monitoring, scaling, schema migration, etc., before using it as a critical component in an application.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
PeerSpot user
Principal Software Architect at a tech services company with 11-50 employees
Consultant
Does real-time streaming and persistence into distributed nodes. It provides a mechanism to create, publish, and subscribe.

What is most valuable?

Real-time streaming and persistence into distributed nodes. It provides a simple mechanism to create, publish, and subscribe.

How has it helped my organization?

We are using Kafka as part of our product. It is one of the messaging layers used to interact between various layers of software modules. This provides a clear separation of modules and leverages it for development and testing of different modules.

What needs improvement?

The management tools are getting mature. When we have thousands of topics, it is hard to visualize.

For how long have I used the solution?

I’ve been using Kafka for two years.

What do I think about the stability of the solution?

We have not encountered any stability issues.

What do I think about the scalability of the solution?

We have to balance the nodes when topics partition across cluster nodes. As it assumes they are of equal sizes, sometimes some nodes may not be allocated similar resources. Reassignment moves all the partitions of specified topics which may be an issue when not planned for.

How are customer service and technical support?

We have the source code to make changes if necessary.

Which solution did I use previously and why did I switch?

Kafka rendered itself suitable for our product offering. It supports all the necessary requirements for a real-time pipeline.

How was the initial setup?

Setting up was easy with ZooKeeper.

What's my experience with pricing, setup cost, and licensing?

With paid support from Confluent, you get the additional benefit of Kafka Connect.

Which other solutions did I evaluate?

We used Akka Streams for faster communication, but it would require additional configuration and setup for persistence. Kafka provides those by default.

What other advice do I have?

Kafka provides distributed persistence and streaming layers. The user has flexibility in managing as a consumer on how to consume messages if they have to handle resilience in their code. It requires ZooKeeper.

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user
Sreekar Nethagani - PeerSpot reviewer
Co-Founder at Attaika
Real User
Top 5
A great streaming platform with good functionality
Pros and Cons
  • "A great streaming platform."
  • "Observability could be improved."

What is our primary use case?

We are a service implementer and we supply this solution to our customers. I'm a company co-founder and we are customers of Apache. 

What is most valuable?

The solution has improved our functionality, it's one of the best streaming platforms I've used. 

What needs improvement?

I'd like to see improvement in terms of observability.

For how long have I used the solution?

I've been using this product for the last five years on and off. 

What do I think about the stability of the solution?

The solution is stable. 

What do I think about the scalability of the solution?

The solution is scalable.

How was the initial setup?

The initial setup is straightforward, it's not complicated.

What's my experience with pricing, setup cost, and licensing?

This is an open-source product.

What other advice do I have?

I rate this solution nine out of 10. 

Disclosure: I am a real user, and this review is based on my own experience and opinions.
PeerSpot user