{"id":1495,"date":"2024-01-01T05:23:52","date_gmt":"2024-01-01T05:23:52","guid":{"rendered":"https:\/\/www.altoroslabs.com\/blog\/?p=1495"},"modified":"2024-04-04T04:16:15","modified_gmt":"2024-04-04T04:16:15","slug":"a-list-of-apache-kafka-benchmarks-2020-2023","status":"publish","type":"post","link":"https:\/\/www.altoroslabs.com\/blog\/a-list-of-apache-kafka-benchmarks-2020-2023\/","title":{"rendered":"A List of 30+ Apache Kafka Performance Benchmarks (2020\u20132023)"},"content":{"rendered":"<h2 class=\"has-normal-font-size main-subtitle\">Explore evaluations of Kafka&#8217;s performance on various cloud platforms, as well as benchmarks against other messaging tools.<\/h2>\n<p>With the spread of event-driven architectures, the popularity of messaging platforms like <a href=\"https:\/\/en.wikipedia.org\/wiki\/Apache_Kafka\" rel=\"noopener\" target=\"_blank\">Apache Kafka<\/a> continues to grow. While performance of the middleware inevitably influences your system, throughput and latencies may vary under different conditions and configurations. Apache Kafka&#8217;s performance has been under evaluation by various vendors for almost 10 years now. However, the product evolves\u2014as well as its competitors and the technologies it may be deployed on. Therefore, we decided to collect the most recent performance comparisons available. This article also contains benchmarks evaluating Apache Kafka on different cloud infrastructures\/platforms.<\/p>\n<h3>Comparing alternatives<\/h3>\n<h4 class=\"h4\">ActiveMQ Artemis vs. RabbitMQ vs. Redis vs. Kafka<\/h4>\n<p>In June 2023, computer science researchers at Baylor University <a href=\"https:\/\/www.mdpi.com\/2673-4001\/4\/2\/18\" rel=\"noopener\" target=\"_blank\">measured<\/a> the throughput and latency of these four dissimilar yet popular products. The study utilized the <a href=\"https:\/\/github.com\/rokinmaharjan\/openmessaging\/tree\/master\" rel=\"noopener\" target=\"_blank\">OpenMessaging Benchmark Framework<\/a>.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results.png\" width=\"800\" class=\"alignnone size-full wp-image-987\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results.png 6342w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-300x169.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-1024x576.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-768x432.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-1536x864.png 1536w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-2048x1152.png 2048w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-1568x882.png 1568w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-artemis-vs-rabbitmq-vs-redis-vs-apache-kafka-throughput-and-latency-test-results-1320x743.png 1320w\" sizes=\"(max-width: 6342px) 100vw, 6342px\" \/><\/a><small>Throughput and median latency (<a href=\"https:\/\/www.mdpi.com\/2673-4001\/4\/2\/18\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<h4 class=\"h4\">Apache Kafka vs. Redpanda<\/h4>\n<p>While in October 2022 Redpanda published a <a href=\"https:\/\/redpanda.com\/blog\/redpanda-vs-kafka-performance-benchmark\" rel=\"noopener\" target=\"_blank\">benchmark<\/a> comparing its product to Apache Kafka, an engineer from Confluent aimed to reproduce the results in March\u2013May 2023. During independent and <a href=\"https:\/\/jack-vanlightly.com\/blog\/2023\/5\/15\/kafka-vs-redpanda-performance-do-the-claims-add-up\" rel=\"noopener\" target=\"_blank\">very detailed evaluation<\/a> with 3 brokers on <i>i3en.6xlarge<\/i>, <a href=\"https:\/\/www.linkedin.com\/in\/jack-vanlightly-1153b44a\/\" rel=\"noopener\" target=\"_blank\">Jack Vanlightly<\/a> found completely different results. The blog series contains a lot of insightful notes on what needs to be done to properly analyze the two products and provides a thoughtful analysis of the results.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/apache-kafka-vs-redpanda-performance-benchmark-jack-vanlightly-2023.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/apache-kafka-vs-redpanda-performance-benchmark-jack-vanlightly-2023.png\" width=\"800\" class=\"aligncenter size-full wp-image-1521\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/apache-kafka-vs-redpanda-performance-benchmark-jack-vanlightly-2023.png 898w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/apache-kafka-vs-redpanda-performance-benchmark-jack-vanlightly-2023-300x235.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/apache-kafka-vs-redpanda-performance-benchmark-jack-vanlightly-2023-768x600.png 768w\" sizes=\"(max-width: 898px) 100vw, 898px\" \/><\/a><small>Apache Kafka (AK) vs. Redpanda (RP) latencies (<a href=\"https:\/\/jack-vanlightly.com\/blog\/2023\/5\/15\/kafka-vs-redpanda-performance-do-the-claims-add-up\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<p><a href=\"https:\/\/github.com\/Vanlightly\/openmessaging-benchmark-custom\/blob\/main\/blog\/kafka-vs-rp\/README.md\" rel=\"noopener\" target=\"_blank\">GitHub repository<\/a><\/p>\n<h4 class=\"h4\">Mosquitto vs. Zenoh vs. Kafka vs. DDS<\/h4>\n<p>In March 2023, researchers from the National Taiwan University tested four popular messaging solutions (see the <a href=\"https:\/\/zenoh.io\/blog\/2023-03-21-zenoh-vs-mqtt-kafka-dds\/\" rel=\"noopener\" target=\"_blank\">blog post<\/a> and the <a href=\"https:\/\/arxiv.org\/ftp\/arxiv\/papers\/2303\/2303.09419.pdf\" rel=\"noopener\" target=\"_blank\">paper<\/a>). The experiment encompassed two scenarios: one was run on a single machine, and the other used multiple servers connected via Ethernet. For the throughput benchmark, payload sizes varied from 8 bytes to 512 MiB, while latency was tested with the payload fixed at 64 bytes.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-DDS-MQTT-Zenoh-multiple-machine-benchmark.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-DDS-MQTT-Zenoh-multiple-machine-benchmark-1024x576.png\" width=\"800\" class=\"aligncenter size-large wp-image-1503\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-DDS-MQTT-Zenoh-multiple-machine-benchmark-1024x576.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-DDS-MQTT-Zenoh-multiple-machine-benchmark-300x169.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-DDS-MQTT-Zenoh-multiple-machine-benchmark-768x432.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-DDS-MQTT-Zenoh-multiple-machine-benchmark.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Kafka, MQTT, DDS, and Zenoh: multiple machine throughput (<a href=\"https:\/\/zenoh.io\/blog\/2023-03-21-zenoh-vs-mqtt-kafka-dds\/\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<p><a href=\"https:\/\/github.com\/ZettaScaleLabs\/zenoh-perf\/tree\/master\/comparison\" rel=\"noopener\" target=\"_blank\">GitHub repository<\/a><\/p>\n<h4 class=\"h4\">ActiveMQ vs. Kafka vs. Zenoh vs. Pulsar<\/h4>\n<p>Researchers from the University of Antwerp ran <a href=\"https:\/\/www.5gblueprint.eu\/wp-content\/uploads\/sites\/62\/2023\/02\/Data_Management_Platform_For_Smart_Orchestration_of_Decentralized_and_Heterogeneous_Vehicular_Edge_Networks_AUTHOR-version.pdf\" rel=\"noopener\" target=\"_blank\">this comparison<\/a> in September 2022. The benchmark used a fixed RSU, which communicated with a mobile OBU over 4G with a payload size of 256 bytes.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results.png\" width=\"800\" class=\"alignnone size-full wp-image-986\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results.png 2278w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-300x169.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-1024x576.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-768x432.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-1536x864.png 1536w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-2048x1152.png 2048w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-1568x882.png 1568w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/07\/activemq-vs-kafka-java-vs-kafka-python-vs-zenoh-pulsar-latency-and-resource-utilization-benchmark-results-1320x742.png 1320w\" sizes=\"(max-width: 2278px) 100vw, 2278px\" \/><\/a><small>Latency and resource utilization results (<a href=\"https:\/\/www.5gblueprint.eu\/wp-content\/uploads\/sites\/62\/2023\/02\/Data_Management_Platform_For_Smart_Orchestration_of_Decentralized_and_Heterogeneous_Vehicular_Edge_Networks_AUTHOR-version.pdf\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<h4 class=\"h4\">Pulsar v2.9.1 vs. Kafka v3.0.0<\/h4>\n<p>In April 2022, StreamNative\u2014a developer of a cloud-based streaming data platform powered by Apache Pulsar\u2014published another <a href=\"https:\/\/streamnative.io\/blog\/apache-pulsar-vs-apache-kafka-2022-benchmark\" rel=\"noopener\" target=\"_blank\">performance benchmark<\/a>. Comparing Pulsar v2.9.1 against Kafka v3.0.0, the tests evaluated Apache Pulsar with and without journaling.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-1024x731.png\" width=\"800\" class=\"aligncenter size-large wp-image-1525\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-1024x731.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-300x214.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-768x548.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-1536x1096.png 1536w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-1568x1119.png 1568w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput-1320x942.png 1320w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-pulsar-performance-benchmark-2022-throughput.png 1600w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Apache Kafka vs. Apache Pulsar with\/without journaling  (<a href=\"https:\/\/streamnative.io\/blog\/apache-pulsar-vs-apache-kafka-2022-benchmark\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<h4 class=\"h4\">RabbitMQ vs. Kafka vs. Pulsar<\/h4>\n<p>In July\u2013August 2020, Confluent\u2014a company behind a cloud-native data streaming platform\u2014conducted a <a href=\"https:\/\/www.confluent.io\/blog\/kafka-fastest-messaging-system\/\" rel=\"noopener\" target=\"_blank\">benchmark<\/a> between Apache Kafka, Apache Pulsar, and RabbitMQ. The tests used three Amazon EC2 i3en.2xlarge instances for the producer, broker, and consumer.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-1024x403.png\" width=\"800\" class=\"aligncenter size-large wp-image-1501\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-1024x403.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-300x118.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-768x302.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-1536x604.png 1536w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-2048x806.png 2048w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-1568x617.png 1568w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2023\/12\/Apache-Kafka-Pulsar-RabbitMQ-benchmark-1320x519.png 1320w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Kafka, Pulsar, and RabbitMQ benchmark results (<a href=\"https:\/\/www.confluent.io\/blog\/kafka-fastest-messaging-system\/\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<p><a href=\"https:\/\/github.com\/confluentinc\/openmessaging-benchmark\" rel=\"noopener\" target=\"_blank\">GitHub repository<\/a><\/p>\n<h4 class=\"h4\">Kafka compared to 10+ other systems<\/h4>\n<p>Other performance benchmarks that compare Apache Kafka to its alternatives:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.mdpi.com\/2079-9292\/12\/23\/4792\" rel=\"noopener\" target=\"_blank\">Comparative Evaluation of Java Virtual Machine-Based Message Queue Services: A Study on Kafka, Artemis, Pulsar, and RocketMQ<\/a> (October 2023)<\/li>\n<li><a href=\"https:\/\/kth.diva-portal.org\/smash\/get\/diva2:1801007\/FULLTEXT01.pdf\" rel=\"noopener\" target=\"_blank\">Performance of message brokers in event-driven architecture: Amazon SNS\/SQS vs Apache Kafka<\/a> (September 2023)<\/li>\n<li><a href=\"https:\/\/oceanrep.geomar.de\/id\/eprint\/58268\/1\/Dissertation_Soeren_Henning.pdf\" rel=\"noopener\" target=\"_blank\">Scalability Benchmarking of Cloud-Native Applications Applied to Event-Driven Microservices<\/a> (Flink vs. Hazelcast Jet vs. Kafka Streams vs. Beam, March 2023)<\/li>\n<li><a href=\"https:\/\/www.sciencedirect.com\/science\/article\/pii\/S0164121223002741\" rel=\"noopener\" target=\"_blank\">Benchmarking scalability of stream processing frameworks deployed as microservices in the cloud<\/a> (Flink vs. Kafka Streams vs. Samza vs. Hazelcast Jet vs. Beam, before February 2023)<\/li>\n<li><a href=\"https:\/\/www.iajit.org\/upload\/files\/An-Experimental-Based-Study-to-Evaluate-the-Efficiency-among-Stream-Processing-Tools.pdf\" rel=\"noopener\" target=\"_blank\">An Experimental Based Study to Evaluate the Efficiency among Stream Processing Tools<\/a> (Spark vs. Flink vs. Storm vs. Kafka vs. Samza, before February 2023)<\/li>\n<li><a href=\"https:\/\/oceanrep.geomar.de\/id\/eprint\/57334\/3\/msc_lorenz_boguhn_thesis_fix.pdf\" rel=\"noopener\" target=\"_blank\">Benchmarking the Scalability of Distributed Stream Processing Engines in Case of Load Peaks<\/a> (Kafka Streams vs. Flink, November 2022)<\/li>\n<li><a href=\"https:\/\/www.diva-portal.org\/smash\/get\/diva2:1674316\/FULLTEXT01.pdf\" rel=\"noopener\" target=\"_blank\">End-to-End Latency and Throughput Evaluation of Two Message Brokers<\/a> (Kafka vs. RabbitMQ, June 2022)<\/li>\n<li><a href=\"https:\/\/test.nastel.com\/dev\/performance-benchmarking-april-2022\/\" rel=\"noopener\" target=\"_blank\">Middleware Performance Benchmark<\/a> (Kafka vs. IBM MQ vs. RabbitMQ vs. ActiveMQ vs. TIBCO EMS vs. Pulsar, April 2022, behind a contact form)<\/li>\n<li><a href=\"https:\/\/chronicle.software\/benchmarking-kafka-vs-chronicle-for-microservices-which-is-750-times-faster\/\" rel=\"noopener\" target=\"_blank\">Kafka vs. Chronicle for microservices: which is 750 times faster?<\/a> (January 2022, see a <a href=\"https:\/\/foojay.io\/today\/how-does-kafka-perform-when-you-need-low-latency\/\" rel=\"noopener\" target=\"_blank\">bonus post<\/a>)<\/li>\n<li><a href=\"https:\/\/softwaremill.com\/mqperf\/\" rel=\"noopener\" target=\"_blank\">Evaluating persistent, replicated message queues<\/a> (Kafka compared to 11 other systems, July 2021)<\/li>\n<li><a href=\"https:\/\/arxiv.org\/pdf\/2009.00304.pdf\" rel=\"noopener\" target=\"_blank\">Theodolite: Scalability Benchmarking of Distributed Stream Processing Engines in Microservice Architectures<\/a> (Kafka Streams vs. Flink, February 2021)<\/li>\n<li><a href=\"https:\/\/ieeexplore.ieee.org\/document\/9303425\" rel=\"noopener\" target=\"_blank\">A Fair Comparison of Message Queuing Systems<\/a> (Kafka vs. RabbitMQ vs. RocketMQ vs. ActiveMQ vs. Pulsar, December 2020)<\/li>\n<li><a href=\"https:\/\/www.doria.fi\/bitstream\/handle\/10024\/177865\/tallberg_sebastian.pdf\" rel=\"noopener\" target=\"_blank\">A Comparison of Data Ingestion Platforms in Real-Time Stream Processing Pipelines<\/a> (Redis vs. Pulsar vs. Kafka, July 2020)<\/li>\n<li><a href=\"https:\/\/is.muni.cz\/th\/edt7u\/master_thesis.pdf\" rel=\"noopener\" target=\"_blank\">Benchmarking Big Data Streaming Platforms<\/a> (Flink vs. Spark Streaming vs. Kafka Streams, spring 2020)<\/li>\n<\/ul>\n<h3>Performance on different platforms<\/h3>\n<h4 class=\"h4\">Apache Kafka on Azul Platform Prime vs. OpenJDK<\/h4>\n<p>In July 2023, Azul conducted a <a href=\"https:\/\/www.azul.com\/blog\/apache-kafka-performance-on-azul-platform-prime-vs-vanilla-openjdk\/\" rel=\"noopener\" target=\"_blank\">benchmark<\/a> that compared Apache Kafka running on Azul Platform Prime JVM vs. OpenJDK. The tests were conducted with three Kafka broker nodes and one node for Zookeeper. The experiments revealed that disk speed and choice of the filesystem influence Kafka performance significantly.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/Apache-Kafka-Azul-OpenJDK-benchmark-throughput.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/Apache-Kafka-Azul-OpenJDK-benchmark-throughput-1024x576.png\" alt=\"\" width=\"800\" class=\"aligncenter size-large wp-image-1588\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/Apache-Kafka-Azul-OpenJDK-benchmark-throughput-1024x576.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/Apache-Kafka-Azul-OpenJDK-benchmark-throughput-300x169.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/Apache-Kafka-Azul-OpenJDK-benchmark-throughput-768x432.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/Apache-Kafka-Azul-OpenJDK-benchmark-throughput.png 1280w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Kafka throughput on Azul Platform Prime and OpenJDK (<a href=\"https:\/\/www.azul.com\/blog\/apache-kafka-performance-on-azul-platform-prime-vs-vanilla-openjdk\/\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<p><a href=\"https:\/\/github.com\/AzulSystems\/kafka-benchmark\" rel=\"noopener\" target=\"_blank\">GitHub repository<\/a><\/p>\n<h4 class=\"h4\">Apache Kafka on AWS Graviton vs. Intel vs. AMD<\/h4>\n<p>In May 2023, Aiven <a href=\"https:\/\/thenewstack.io\/kafka-benchmarking-on-aws-graviton2-graviton3-and-amd\/\" rel=\"noopener\" target=\"_blank\">benchmarked<\/a> Kafka v3.3 on AWS Graviton v2\/v3 processors against Intel- and AMD-powered instances. A 3-node Kafka cluster was run on 6 different architecture instances, evaluating performance, stability, as well as pricing per hour and per 1 billion messages.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023-1024x461.png\" width=\"800\" class=\"aligncenter size-large wp-image-1527\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023-1024x461.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023-300x135.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023-768x346.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023-1320x595.png 1320w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-on-aws-graviton-intel-and-amd-2023.png 1332w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Apache Kafka performance on AWS Graviton 2\/3 vs. Intel vs. AMD (<a href=\"https:\/\/thenewstack.io\/kafka-benchmarking-on-aws-graviton2-graviton3-and-amd\/\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<h4 class=\"h4\">Apache Kafka on AWS Graviton with gp3<\/h4>\n<p>In October 2021, the Instaclustr team issued a <a href=\"https:\/\/dzone.com\/articles\/benchmarking-aws-graviton2-and-gp3-support-for-apa\" rel=\"noopener\" target=\"_blank\">benchmark<\/a> evaluating Apache Kafka on AWS Graviton2 instances, while exploring the benefits of using gp3 SSDs to boost performance. The study highlights what needs to be done to make this configuration work and how Amazon Corretto Crypto Provider (ACCP) helped during the process.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-2021-aws-graviton-gp3-throughput-r6g.2xlarge.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-2021-aws-graviton-gp3-throughput-r6g.2xlarge-1024x587.png\" width=\"800\" class=\"aligncenter size-large wp-image-1531\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-2021-aws-graviton-gp3-throughput-r6g.2xlarge-1024x587.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-2021-aws-graviton-gp3-throughput-r6g.2xlarge-300x172.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-2021-aws-graviton-gp3-throughput-r6g.2xlarge-768x440.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-benchmark-2021-aws-graviton-gp3-throughput-r6g.2xlarge.png 1078w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Apache Kafka performance on AWS Graviton2 with gp3, r6g.2xlarge (<a href=\"https:\/\/dzone.com\/articles\/benchmarking-aws-graviton2-and-gp3-support-for-apa\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<h4 class=\"h4\">Apache Kafka v2.6 on OpenShift<\/h4>\n<p>In July 2021, an architect from Red Hat <a href=\"https:\/\/developers.redhat.com\/articles\/2021\/07\/19\/benchmarking-kafka-producer-throughput-quarkus\" rel=\"noopener\" target=\"_blank\">evaluated<\/a> the performance of Kafka v2.6 with Quarkus v1.11.1. He was using the AMQ Streams v1.6 distribution (Red Hat&#8217;s data streaming platform based on Kafka) on OpenShift Container Platform v4.5 (built upon Kubernetes). Rather than benchmarking the maximum performance, Berker Agir aimed to demonstrate how different configurations impact producer message throughput.<\/p>\n<p><center><a href=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-throughput-2021-quarkus-openshift-container-platform-red-hat-amq-streams.png\"><img decoding=\"async\" src=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-throughput-2021-quarkus-openshift-container-platform-red-hat-amq-streams-1024x657.png\" width=\"800\" class=\"aligncenter size-large wp-image-1536\" srcset=\"https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-throughput-2021-quarkus-openshift-container-platform-red-hat-amq-streams-1024x657.png 1024w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-throughput-2021-quarkus-openshift-container-platform-red-hat-amq-streams-300x193.png 300w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-throughput-2021-quarkus-openshift-container-platform-red-hat-amq-streams-768x493.png 768w, https:\/\/www.altoroslabs.com\/blog\/wp-content\/uploads\/2024\/01\/apache-kafka-performance-throughput-2021-quarkus-openshift-container-platform-red-hat-amq-streams.png 1027w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><small>Configurations influence Apache Kafka performance (<a href=\"https:\/\/developers.redhat.com\/articles\/2021\/07\/19\/benchmarking-kafka-producer-throughput-quarkus\" rel=\"noopener\" target=\"_blank\">image credit<\/a>)<\/small><\/center><\/p>\n<p><a href=\"https:\/\/github.com\/berkeragir\/quarkus-kafka-demo\" rel=\"noopener\" target=\"_blank\">GitHub repository<\/a><\/p>\n<h4 class=\"h4\">Kafka on Kubernetes, OpenShift\/IBM, NetApp, etc.<\/h4>\n<p>More performance benchmarks like that were issued by infrastructure vendors:<\/p>\n<ul>\n<li><a href=\"https:\/\/docs.netapp.com\/us-en\/netapp-solutions\/pdfs\/sidebar\/Apache_Kafka_workloads_with_NetApp_NFS_storage.pdf\" rel=\"noopener\" target=\"_blank\">Apache Kafka workloads with NetApp NFS storage<\/a> (December 2023, plus a <a href=\"https:\/\/docs.netapp.com\/us-en\/netapp-solutions\/data-analytics\/kafka-nfs-performance-overview-and-validation-with-aff-on-premises.html\" rel=\"noopener\" target=\"_blank\">similar one<\/a>)<\/li>\n<li><a href=\"https:\/\/www.kedify.io\/blog-posts\/keda-kafka-improve-performance-by-62-15-at-peak-loads\" rel=\"noopener\" target=\"_blank\">KEDA + Kafka: Improve performance by 62.15% at peak loads<\/a> (enhancing Kafka&#8217;s consumer performance on Kubernetes, December 2023)<\/li>\n<li><a href=\"https:\/\/aiven.io\/blog\/benchmarking-kafka-write-throughput-performance-2022-update\" rel=\"noopener\" target=\"_blank\">Benchmarking Aiven for Apache Kafka Throughput<\/a> (November 2022)<\/li>\n<li><a href=\"https:\/\/ibm.github.io\/event-automation\/pdfs\/11.0.4%20Performance%20Report_v3.pdf\" rel=\"noopener\" target=\"_blank\">IBM Event Streams Performance Report<\/a> (a distribution build on top of Apache Kafka, in RH OpenShift Container\/IBM Cloud, October 2022)<\/li>\n<li><a href=\"https:\/\/www.intel.co.kr\/content\/dam\/www\/central-libraries\/us\/en\/documents\/2022-10\/kafka-optimization-and-benchmark-eguide.pdf\" rel=\"noopener\" target=\"_blank\">A Guide to Kafka Optimizations and Benchmarks<\/a> (by Intel, 2022)<\/li>\n<li><a href=\"https:\/\/www.purestorage.com\/content\/dam\/pdf\/en\/white-papers\/wp-kafka-on-kubernetes-with-portworx.pdf\" rel=\"noopener\" target=\"_blank\">Apache Kafka on Kubernetes with Portworx<\/a> (October 2021?)<\/li>\n<li><a href=\"https:\/\/armkeil.blob.core.windows.net\/developer\/Files\/pdf\/white-paper\/benchmarking-apache-kafka.pdf\" rel=\"noopener\" target=\"_blank\">Benchmarking Apache Kafka for Cost-Performance on AWS<\/a> (ARM evaluates Kafka on AWS Graviton2, September 2021)<\/li>\n<\/ul>\n<h3>Evaluating configurations\/deployments<\/h3>\n<p>Benchmarks indicate that the performance of Apache Kafka may depend on the scenario, configuration, and the platform it is running. Thorough <a href=\"https:\/\/www.altoroslabs.com\/services_technology-benchmarking\">technology benchmarking<\/a> can reveal unexpected behavior or give other insights vital to understanding how the evaluated tool fits the specific requirements of your project.<\/p>\n<p>In addition to 20+ studies above, the performance reports below can also be helpful. Though they do not compare Kafka to other platforms, they reveal how performance can change under various requirements, implementations, and optimizations.<\/p>\n<ul>\n<li><a href=\"https:\/\/www.humansecurity.com\/tech-engineering-blog\/optimizing-kafka-for-throughput\" rel=\"noopener\" target=\"_blank\">Optimizing Kafka for Throughput<\/a> (October 2023)<\/li>\n<li><a href=\"https:\/\/link.springer.com\/article\/10.1007\/s10796-023-10409-2\" rel=\"noopener\" target=\"_blank\">Monitoring Framework for the Performance Evaluation of an IoT Platform with Elasticsearch and Apache Kafka<\/a> (July 2023)<\/li>\n<li><a href=\"https:\/\/webthesis.biblio.polito.it\/26906\/1\/tesi.pdf\" rel=\"noopener\" target=\"_blank\">Performance Evaluation of Kafka Clients Using a Reactive API<\/a> (April 2023)<\/li>\n<li><a href=\"https:\/\/spcl.inf.ethz.ch\/Publications\/.pdf\/kafka-taranov.pdf\" rel=\"noopener\" target=\"_blank\">KafkaDirect: Zero-copy Data Access for Apache Kafka over RDMA Networks<\/a> (June 2022)<\/li>\n<li><a href=\"https:\/\/aws.amazon.com\/blogs\/big-data\/best-practices-for-right-sizing-your-apache-kafka-clusters-to-optimize-performance-and-cost\/\" rel=\"noopener\" target=\"_blank\">Best practices for right-sizing your Apache Kafka clusters to optimize performance and cost<\/a> (by AWS, March 2022)<\/li>\n<li><a href=\"https:\/\/hpi.de\/plattner\/publications\/all-publications\/Document\/import_epic\/HowFastCanWeInsert.pdf\/45d84ef63e5aa8793bbf5c2d42dfc403.html?cHash=4a78b626e319168bf25099cd10547a86\" rel=\"noopener\" target=\"_blank\">How Fast Can We Insert? An Empirical Performance Evaluation of Apache Kafka<\/a> (April 2021?)<\/li>\n<li><a href=\"https:\/\/oceanrep.geomar.de\/id\/eprint\/52340\/1\/Bjoern-Vonheiden_Scalability-Benchmarking-of-Kafka-Streams-Deployment-Options.pdf\" rel=\"noopener\" target=\"_blank\">Scalability Benchmarking of Kafka Streams Deployment Options<\/a> (February 2021?)<\/li>\n<\/ul>\n<p>This collection of performance comparisons may not be exhaustive\u2014new evaluations are being released almost each month. Therefore, if you know any other Apache Kafka benchmarks we missed\u2014feel free to add them in the comments.<\/p>\n<h3>Frequently asked questions (FAQ)<\/h3><ul class=\"collapsible s-faq__collapse\"><li itemscope=\"itemscope\" itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\" class=\"\">\n                    <div class=\"collapsible-header\" tabindex=\"0\">\n                        <p itemprop=\"name\"><strong>What is Apache Kafka?<\/strong><\/p>\n                    <\/div>\n                    <div class=\"collapsible-body\" itemscope=\"itemscope\" itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" style=\"\">\n                        <div class=\"collapsible-body__wrap\" itemprop=\"text\">\n                            <p>Apache Kafka is a robust, open-source stream-processing platform that has revolutionized how companies process and analyze real-time data. Kafka uses a binary TCP-based protocol and is designed to handle data streams from multiple sources, delivering messages to multiple consumers with high performance and in real-time. Kafka was originally developed at LinkedIn in 2010 as a solution to improve the company's data pipelines. In 2011, Kafka was open-sourced as part of the Apache Software Foundation, making it available to a broader community.<br \/>\r\n<br \/>\r\nIn 2012, Kafka became a <a href=\"https:\/\/betterprogramming.pub\/an-introduction-to-apache-kafka-95a82260c1c3\" rel=\"noopener\" target=\"_blank\">top-level Apache project<\/a>, signifying its maturity and the community's confidence in its potential and stability. This milestone was crucial in cementing Kafka's reputation as a reliable and scalable choice for handling real-time data streams. The introduction of the <a href=\"https:\/\/www.confluent.io\/blog\/introducing-kafka-streams-stream-processing-made-simple\/\" rel=\"noopener\" target=\"_blank\">Kafka Streams API<\/a> in 2016 marked its evolution from a messaging queue to a full-fledged stream processing framework, enabling users to process their data directly within Kafka. This shift expanded Kafka's use cases beyond just messaging and into the realm of complex event processing and real-time analytics.<br \/>\r\n<br \/>\r\nOne of Kafka's most influential milestones came in 2017 with the introduction of <a href=\"https:\/\/www.confluent.io\/blog\/exactly-once-semantics-are-possible-heres-how-apache-kafka-does-it\/\" rel=\"noopener\" target=\"_blank\">exactly-once semantics<\/a>. This made stream processing more reliable by ensuring that events are neither lost nor duplicated.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/li><li itemscope=\"itemscope\" itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\" class=\"\">\n                    <div class=\"collapsible-header\" tabindex=\"0\">\n                        <p itemprop=\"name\"><strong>How does Apache Kafka differ from Pulsar and RabbitMQ?<\/strong><\/p>\n                    <\/div>\n                    <div class=\"collapsible-body\" itemscope=\"itemscope\" itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" style=\"\">\n                        <div class=\"collapsible-body__wrap\" itemprop=\"text\">\n                            <p>Apache Kafka's <a href=\"https:\/\/docs.confluent.io\/kafka\/introduction.html\" rel=\"noopener\" target=\"_blank\">architecture<\/a> is fundamentally designed as a distributed commit log. At its core, it uses a broker system where each broker is responsible for storing data and serving clients. Kafka organizes messages into topics, and each topic is divided into partitions to ensure parallel processing and scalability. Producers publish messages to topics, and consumers subscribe to topics and process the feed of messages. Kafka maintains high performance and durability by replicating the partitions across multiple brokers and uses Zookeeper for broker coordination and maintaining the cluster state. Kafka's architecture excels in scenarios requiring high throughput and durability, making it ideal for building real-time streaming <a href=\"https:\/\/kafka.apache.org\/uses#uses_streamprocessing\" rel=\"noopener\" target=\"_blank\">data pipelines<\/a> and applications.<br \/>\r\n<br \/>\r\nApache Pulsar is recognized for its <a href=\"https:\/\/pulsar.apache.org\/docs\/3.1.x\/concepts-architecture-overview\/\" rel=\"noopener\" target=\"_blank\">two-layered architecture<\/a>, separating the serving layer (brokers) from the storage layer (BookKeeper). This distinct architecture allows for independent scaling of serving and storage resources, providing flexibility, and efficiency in resource utilization. Pulsar's brokers handle client connections and implement various messaging protocols, while the BookKeeper handles durable storage of messages.\u00a0Similar to Kafka, Pulsar organizes messages into topics and partitions for scalability. However, Pulsar enhances its architecture with features like multi-tenancy and geo-replication out of the box. This allows for effective resource isolation and data synchronization across different clusters.\u00a0Pulsar's architecture is often chosen for its <a href=\"https:\/\/www.datanami.com\/2018\/12\/11\/apache-pulsar-goes-cloud-native\/\" rel=\"noopener\" target=\"_blank\">cloud-native design<\/a>, supporting real-time analytics and data integration in a multi-tenant environment.<br \/>\r\n<br \/>\r\nRabbitMQ follows a more traditional message broker architecture with a focus on flexibility and reliability. It manages and routes messages through exchanges based on rules defined in bindings. Messages are then stored in queues until consumed by applications. RabbitMQ's architecture is focused on ensuring message delivery and providing various routing options. This makes it versatile for different messaging patterns. It supports <a href=\"https:\/\/www.rabbitmq.com\/protocols.html\" rel=\"noopener\" target=\"_blank\">multiple messaging protocols<\/a>, such as AMQP, MQTT, and STOMP, offering a broad range of compatibility with different systems.\u00a0RabbitMQ's architecture shines in <a href=\"https:\/\/www.petermorlion.com\/rabbitmq-use-cases\/\" rel=\"noopener\" target=\"_blank\">scenarios<\/a> that require complex routing, immediate message delivery, and a guarantee that messages are safely transferred.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/li><li itemscope=\"itemscope\" itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\" class=\"\">\n                    <div class=\"collapsible-header\" tabindex=\"0\">\n                        <p itemprop=\"name\"><strong>How can the performance of Apache Kafka be optimized?<\/strong><\/p>\n                    <\/div>\n                    <div class=\"collapsible-body\" itemscope=\"itemscope\" itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" style=\"\">\n                        <div class=\"collapsible-body__wrap\" itemprop=\"text\">\n                            <p>To improve Apache Kafka performance, consider balancing the number of <a href=\"https:\/\/redpanda.com\/guides\/kafka-performance\/kafka-optimization\" rel=\"noopener\" target=\"_blank\">partitions<\/a>, optimal <a href=\"https:\/\/medium.com\/@chandank.kumar\/performance-tuning-apache-kafka-50b0f7b1dd86\" rel=\"noopener\" target=\"_blank\">replication factors<\/a>, adjusting <a href=\"https:\/\/granulate.io\/blog\/optimizing-kafka-performance\/\" rel=\"noopener\" target=\"_blank\">broker topic<\/a> configurations, optimizing producer settings like batch size and compression, etc. It is also important to fine-tune consumer fetch sizes and manage hardware resources efficiently.<br \/>\r\n<br \/>\r\nIncreasing the number of partitions enables more parallelism, thus also improving throughput. However, too many partitions can, vice versa, increase overhead and decrease performance.<br \/>\r\n<br \/>\r\nA <a href=\"https:\/\/github.com\/MicrosoftDocs\/azure-docs\/blob\/main\/articles\/hdinsight\/kafka\/apache-kafka-performance-tuning.md\" rel=\"noopener\" target=\"_blank\">guide<\/a> by Microsoft details how to optimize Kafka on Azure by adjusting producer, broker, and consumer settings. Another <a href=\"https:\/\/www.humansecurity.com\/tech-engineering-blog\/optimizing-kafka-for-throughput\" rel=\"noopener\" target=\"_blank\">tutorial<\/a> (by HUMAN Security, Oct 2023) focuses on fine-tuning Kafka by changing compression types.<br \/>\r\n<br \/>\r\nOther factors can also increase Kafka's throughput. SSDs, for example, can improve performance over HDDs due to their faster read\/write speeds.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/li><li itemscope=\"itemscope\" itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\" class=\"\">\n                    <div class=\"collapsible-header\" tabindex=\"0\">\n                        <p itemprop=\"name\"><strong>How much throughput can Apache Kafka handle?<\/strong><\/p>\n                    <\/div>\n                    <div class=\"collapsible-body\" itemscope=\"itemscope\" itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" style=\"\">\n                        <div class=\"collapsible-body__wrap\" itemprop=\"text\">\n                            <p>The performance of Apache Kafka can be significantly high, but it's not a fixed number. The throughput depends on various factors\u2014including hardware configuration, network setup, configuration, topic partitioning, message size, and the specific workload being run. Generally, Kafka is known for its ability to handle massive load scenarios.<br \/>\r\n<br \/>\r\nBack in 2014, the LinkedIn Engineering blog <a href=\"https:\/\/engineering.linkedin.com\/kafka\/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines\" rel=\"noopener\" target=\"_blank\">revealed<\/a> that Apache Kafka can handle more than 2 million records per second on three commodity machines. In 2022, this figure was eventually <a href=\"https:\/\/developer.confluent.io\/learn-more\/podcasts\/handling-2-million-apache-kafka-messages-per-second-at-honeycomb\/\" rel=\"noopener\" target=\"_blank\">confirmed<\/a> by Honeycomb for their real-life deployment, which uses the Confluent platform for the purpose.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/li><li itemscope=\"itemscope\" itemprop=\"mainEntity\" itemtype=\"https:\/\/schema.org\/Question\" class=\"\">\n                    <div class=\"collapsible-header\" tabindex=\"0\">\n                        <p itemprop=\"name\"><strong>How can one measure the performance of Apache Kafka?<\/strong><\/p>\n                    <\/div>\n                    <div class=\"collapsible-body\" itemscope=\"itemscope\" itemprop=\"acceptedAnswer\" itemtype=\"https:\/\/schema.org\/Answer\" style=\"\">\n                        <div class=\"collapsible-body__wrap\" itemprop=\"text\">\n                            <p>If you are looking to conduct your own Apache Kafka performance tests, there are several tools that can be used for the process. For instance, the <a href=\"https:\/\/github.com\/confluentinc\/openmessaging-benchmark\" rel=\"noopener\" target=\"_blank\">OpenMessaging<\/a> benchmark by Confluent is one of the most popular tools used within the industry. Another application that can be used is JMeter\u2014see the <a href=\"https:\/\/jmeter.apache.org\/usermanual\/\" rel=\"noopener\" target=\"_blank\">docs<\/a> and read <a href=\"https:\/\/www.blazemeter.com\/blog\/kafka-testing\" rel=\"noopener\" target=\"_blank\">this guide<\/a> from Blazemeter to learn how to test Apache Kafka with this product.<br \/>\r\n<br \/>\r\nDeveloped by Grafana Labs, <a href=\"https:\/\/grafana.com\/docs\/k6\/latest\/\" rel=\"noopener\" target=\"_blank\">k6<\/a> is one more open-source load testing tool. This <a href=\"https:\/\/k6.io\/blog\/load-test-your-kafka-producers-and-consumers-using-k6\/\" rel=\"noopener\" target=\"_blank\">blog post<\/a> details how to monitor Kafka producers and consumers. Another <a href=\"https:\/\/gatling.io\/2023\/06\/kafka-load-test\/\" rel=\"noopener\" target=\"_blank\">guide<\/a> demonstrates how to determine the maximum load with Gatling.<\/p>\n                        <\/div>\n                    <\/div>\n                <\/li><\/ul>\n<h3>Further reading<\/h3>\n<ul class=\"custom-list custom-list-green\">\n<li><a href=\"https:\/\/www.altoroslabs.com\/blog\/a-collection-of-mqtt-broker-performance-benchmarks-2020-2023\/\">A Collection of 20+ MQTT Broker Performance Benchmarks (2020\u20132023)<\/a><\/li>\n<li><a href=\"https:\/\/www.altoroslabs.com\/blog\/scaling-industrial-iot-in-manufacturing-challenges-and-guidelines\/\">Industrial IoT in Manufacturing: Major Pains for a CTO to Address<\/a><\/li>\n<li><a href=\"https:\/\/www.altoros.com\/blog\/multi-cluster-deployment-options-for-apache-kafka-pros-and-cons\/\" target=\"_blank\" rel=\"noopener\">Multi-Cluster Deployment Options for Apache Kafka: Pros and Cons<br \/>\n<\/a><\/li>\n<\/ul>\n<hr\/>\n<p><center><small>The blog post is written by <a href=\"https:\/\/www.altoroslabs.com\/blog\/author\/alex\/\">Alex Khizhniak<\/a> with contributions from <a href=\"https:\/\/www.altoros.com\/blog\/author\/carlo\/\" rel=\"noopener\" target=\"_blank\">Carlo Gutierrez<\/a>.<\/small><\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Explore evaluations of Kafka\u2019s performance on various cloud platforms, as well as benchmarks against other messaging tools.<\/p>\n","protected":false},"author":7,"featured_media":1591,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[11],"tags":[10],"class_list":["post-1495","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-article","tag-the-internet-of-things","entry"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/posts\/1495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/comments?post=1495"}],"version-history":[{"count":76,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/posts\/1495\/revisions"}],"predecessor-version":[{"id":1509,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/posts\/1495\/revisions\/1509"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/media\/1591"}],"wp:attachment":[{"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/media?parent=1495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/categories?post=1495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.altoroslabs.com\/blog\/wp-json\/wp\/v2\/tags?post=1495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}