Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Apache Storm
Apache Storm

133
125
+ 1
18
Samza
Samza

4
2
+ 1
0
Add tool

Apache Storm vs Samza: What are the differences?

Apache Storm: Distributed and fault-tolerant realtime computation. Apache Storm is a free and open source distributed realtime computation system. Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing. Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate; Samza: A distributed stream processing framework. It allows you to build stateful applications that process data in real-time from multiple sources including Apache Kafka.

Apache Storm and Samza can be categorized as "Stream Processing" tools.

Some of the features offered by Apache Storm are:

  • Storm integrates with the queueing and database technologies you already use
  • Simple API
  • Scalable

On the other hand, Samza provides the following key features:

  • HIGH PERFORMANCE
  • HORIZONTALLY SCALABLE
  • EASY TO OPERATE

Apache Storm and Samza are both open source tools. It seems that Apache Storm with 5.82K GitHub stars and 3.95K forks on GitHub has more adoption than Samza with 569 GitHub stars and 244 GitHub forks.

No Stats

What is Apache Storm?

Apache Storm is a free and open source distributed realtime computation system. Storm makes it easy to reliably process unbounded streams of data, doing for realtime processing what Hadoop did for batch processing. Storm has many use cases: realtime analytics, online machine learning, continuous computation, distributed RPC, ETL, and more. Storm is fast: a benchmark clocked it at over a million tuples processed per second per node. It is scalable, fault-tolerant, guarantees your data will be processed, and is easy to set up and operate.

What is Samza?

It allows you to build stateful applications that process data in real-time from multiple sources including Apache Kafka.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Apache Storm?
Why do developers choose Samza?
    Be the first to leave a pro

    Sign up to add, upvote and see more prosMake informed product decisions

      Be the first to leave a con
        Be the first to leave a con
        What companies use Apache Storm?
        What companies use Samza?

        Sign up to get full access to all the companiesMake informed product decisions

        What tools integrate with Apache Storm?
        What tools integrate with Samza?
        What are some alternatives to Apache Storm and Samza?
        Apache Spark
        Spark is a fast and general processing engine compatible with Hadoop data. It can run in Hadoop clusters through YARN or Spark's standalone mode, and it can process data in HDFS, HBase, Cassandra, Hive, and any Hadoop InputFormat. It is designed to perform both batch processing (similar to MapReduce) and new workloads like streaming, interactive queries, and machine learning.
        Kafka
        Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
        Amazon Kinesis
        Amazon Kinesis can collect and process hundreds of gigabytes of data per second from hundreds of thousands of sources, allowing you to easily write applications that process information in real-time, from sources such as web site click-streams, marketing and financial information, manufacturing instrumentation and social media, and operational logs and metering data.
        Apache Flume
        It is a distributed, reliable, and available service for efficiently collecting, aggregating, and moving large amounts of log data. It has a simple and flexible architecture based on streaming data flows. It is robust and fault tolerant with tunable reliability mechanisms and many failover and recovery mechanisms. It uses a simple extensible data model that allows for online analytic application.
        Apache Flink
        Apache Flink is an open source system for fast and versatile data analytics in clusters. Flink supports batch and streaming analytics, in one system. Analytical programs can be written in concise and elegant APIs in Java and Scala.
        See all alternatives
        Decisions about Apache Storm and Samza
        Marc Bollinger
        Marc Bollinger
        Infra & Data Eng Manager at Lumosity | 4 upvotes 112.9K views
        atLumosityLumosity
        Node.js
        Node.js
        Ruby
        Ruby
        Kafka
        Kafka
        Scala
        Scala
        Apache Storm
        Apache Storm
        Heron
        Heron
        Redis
        Redis
        Pulsar
        Pulsar

        Lumosity is home to the world's largest cognitive training database, a responsibility we take seriously. For most of the company's history, our analysis of user behavior and training data has been powered by an event stream--first a simple Node.js pub/sub app, then a heavyweight Ruby app with stronger durability. Both supported decent throughput and latency, but they lacked some major features supported by existing open-source alternatives: replaying existing messages (also lacking in most message queue-based solutions), scaling out many different readers for the same stream, the ability to leverage existing solutions for reading and writing, and possibly most importantly: the ability to hire someone externally who already had expertise.

        We ultimately migrated to Kafka in early- to mid-2016, citing both industry trends in companies we'd talked to with similar durability and throughput needs, the extremely strong documentation and community. We pored over Kyle Kingsbury's Jepsen post (https://aphyr.com/posts/293-jepsen-Kafka), as well as Jay Kreps' follow-up (http://blog.empathybox.com/post/62279088548/a-few-notes-on-kafka-and-jepsen), talked at length with Confluent folks and community members, and still wound up running parallel systems for quite a long time, but ultimately, we've been very, very happy. Understanding the internals and proper levers takes some commitment, but it's taken very little maintenance once configured. Since then, the Confluent Platform community has grown and grown; we've gone from doing most development using custom Scala consumers and producers to being 60/40 Kafka Streams/Connects.

        We originally looked into Storm / Heron , and we'd moved on from Redis pub/sub. Heron looks great, but we already had a programming model across services that was more akin to consuming a message consumers than required a topology of bolts, etc. Heron also had just come out while we were starting to migrate things, and the community momentum and direction of Kafka felt more substantial than the older Storm. If we were to start the process over again today, we might check out Pulsar , although the ecosystem is much younger.

        To find out more, read our 2017 engineering blog post about the migration!

        See more
        Interest over time
        Reviews of Apache Storm and Samza
        No reviews found
        How developers use Apache Storm and Samza
        Avatar of Pinterest
        Pinterest uses Apache StormApache Storm

        In addition to batch processing, we also wanted to achieve real-time data processing. For example, to improve the success rate of experiments, we needed to figure out experiment group allocations in real-time once the experiment configuration was pushed out to production. We used Storm to tail Kafka and compute aggregated metrics in real-time to provide crucial stats.

        Avatar of Yelp
        Yelp uses Apache StormApache Storm

        Real-time analytics are much better than periodically run batch jobs, so recently we open sourced Pyleus which allows anyone to write Storm topologies using Python.

        Avatar of Blue Kangaroo
        Blue Kangaroo uses Apache StormApache Storm

        Real-time log processing for user profiling

        Avatar of JimmyCode
        JimmyCode uses Apache StormApache Storm

        Batch processing and as recommendation tool.

        Avatar of brenoinojosa
        brenoinojosa uses Apache StormApache Storm

        Tasks in parallel are run by Storm.

        How much does Apache Storm cost?
        How much does Samza cost?
        Pricing unavailable
        Pricing unavailable
        News about Apache Storm
        More news
        News about Samza
        More news