Apache Kafka vs Apache Storm
Apache Kafka
kafka.apache.orgApache Storm
storm.apache.orgSide by side
| Figure | Apache Kafka | Apache Storm |
|---|---|---|
| Price from | Free | Free |
| Free plan | Yes | Yes |
| Free trial | — | — |
| Open source | — | — |
| Web | — | Yes |
| Windows | — | Yes |
| macOS | — | Yes |
| Linux | — | Yes |
| API | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 1 |
| Spec score · Streaming Analytics Software | 7.8 (#10) | 8.0 (#8) |
| Spec score · Stream Processing Software | 7.8 (#12) | 8.1 (#9) |
| Deployment | Kafka can run on bare-metal hardware, virtual machines, or containers, on premises or in the cloud, with self-managed or vendor-managed service options. | Storm provides local mode for in-process development and remote mode for submitting topologies to a cluster. |
| Integrations | Kafka Connect integrates with hundreds of event sources and sinks; the homepage names Postgres, JMS, Elasticsearch, and AWS S3 as examples. | Out-of-the-box integrations include Apache Kafka, HDFS, JDBC databases, JMS, and Redis. |
| License | The Apache Software Foundation identifies Apache License 2.0 as a widely adopted open-source license. | Apache Storm is licensed under the Apache License, Version 2.0. |
| Security | The project describes Kafka as secure; the ASF directs vulnerability reports to its security page. | Storm supports pluggable Kerberos/SASL authentication and SimpleACLAuthorizer authorization, both disabled by default. |
| Support | The Apache Software Foundation says it does not provide formal or commercial support for its software packages. | Users can get help through the user mailing list at [email protected]. |
| Use cases | The project lists messaging, website activity tracking, metrics, log aggregation, stream processing, event sourcing, and commit logs as Kafka use cases. | Storm supports realtime analytics, online machine learning, continuous computation, distributed RPC, and ETL. |
Plans
In their own words
Apache Kafka
Apache Kafka is an open-source distributed event-streaming platform for data pipelines, streaming analytics, data integration, and mission-critical applications. Applications can publish and subscribe to event streams, retain them durably, and process them either in real time or later. Kafka supports durable, fault-tolerant replication across availability zones, data centers, or geographic regions. Kafka Streams provides stateful operations, aggregations, windowing, joins, event-time processing, and exactly-once processing. Kafka Connect links hundreds of event sources and sinks, including Postgres, JMS, Elasticsearch, and AWS S3. Deployments can use bare metal, virtual machines, or containers, on premises or in the cloud, with self-managed or vendor-managed options. The project describes network-limited throughput, latency as low as 2 ms, and clusters of up to 1,000 brokers. Kafka is self-hosted, free, and open source under Apache License 2.0. A local quickstart requires Java 17 or later.
Apache Storm
Apache Storm is a distributed system for computing over unbounded data streams in real time. It uses spouts, bolts, and topologies to assemble multi-stage computations, supporting realtime analytics, online machine learning, continuous computation, distributed RPC, and ETL. The project describes Storm as scalable and fault-tolerant, with guaranteed data processing, and reports a benchmark above one million tuples per second per node. Integrations include Apache Kafka, HDFS, JDBC databases, JMS, and Redis. Developers can work in local mode in-process or submit topologies to a remote cluster. Storm supports stateful processing and lists JavaScript, Python, Ruby, and C# among supported languages. It is free under Apache License, Version 2.0; source and binary distributions are available, along with Maven Central and an official Docker image. The current release is 3.1.0. Security options include Kerberos/SASL authentication, SimpleACLAuthorizer authorization, and TLS for Thrift RPC and worker messaging; authentication and authorization options are disabled by default.