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

Samza

20
57
+ 1
0
ZeroMQ

226
521
+ 1
72
Add tool

Samza vs ZeroMQ: What are the differences?

What is Samza? A distributed stream processing framework. Samza allows you to build stateful applications that process data in real-time from multiple sources including Apache Kafka.

What is ZeroMQ? Fast, lightweight messaging library that allows you to design complex communication system without much effort. The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

Samza and ZeroMQ can be categorized as "Message Queue" tools.

Some of the features offered by Samza are:

  • HIGH PERFORMANCE
  • HORIZONTALLY SCALABLE
  • EASY TO OPERATE

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

  • Connect your code in any language, on any platform.
  • Carries messages across inproc, IPC, TCP, TPIC, multicast.
  • Smart patterns like pub-sub, push-pull, and router-dealer.

Samza and ZeroMQ are both open source tools. It seems that ZeroMQ with 5.43K GitHub stars and 1.59K forks on GitHub has more adoption than Samza with 565 GitHub stars and 243 GitHub forks.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Samza
Pros of ZeroMQ
    Be the first to leave a pro
    • 24
      Fast
    • 20
      Lightweight
    • 11
      Transport agnostic
    • 7
      No broker required
    • 4
      Low level APIs are in C
    • 4
      Low latency
    • 1
      Open source
    • 1
      Publish-Subscribe

    Sign up to add or upvote prosMake informed product decisions

    Cons of Samza
    Cons of ZeroMQ
      Be the first to leave a con
      • 5
        No message durability
      • 3
        Not a very reliable system - message delivery wise
      • 1
        M x N problem with M producers and N consumers

      Sign up to add or upvote consMake informed product decisions

      What is Samza?

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

      What is ZeroMQ?

      The 0MQ lightweight messaging kernel is a library which extends the standard socket interfaces with features traditionally provided by specialised messaging middleware products. 0MQ sockets provide an abstraction of asynchronous message queues, multiple messaging patterns, message filtering (subscriptions), seamless access to multiple transport protocols and more.

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

      What companies use Samza?
      What companies use ZeroMQ?
      See which teams inside your own company are using Samza or ZeroMQ.
      Sign up for StackShare EnterpriseLearn More

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

      What tools integrate with Samza?
      What tools integrate with ZeroMQ?
      What are some alternatives to Samza and ZeroMQ?
      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.
      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.
      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 Streams
      It is a client library for building applications and microservices, where the input and output data are stored in Kafka clusters. It combines the simplicity of writing and deploying standard Java and Scala applications on the client side with the benefits of Kafka's server-side cluster technology.
      Kafka
      Kafka is a distributed, partitioned, replicated commit log service. It provides the functionality of a messaging system, but with a unique design.
      See all alternatives