Alternatives to ZeroMQ logo
RabbitMQ, Kafka, MQTT, Redis, and ActiveMQ are the most popular alternatives and competitors to ZeroMQ.
140
123
+ 1
49

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.
ZeroMQ is a tool in the Message Queue category of a tech stack.
ZeroMQ is an open source tool with 5.6K GitHub stars and 1.6K GitHub forks. Here’s a link to ZeroMQ's open source repository on GitHub

ZeroMQ alternatives & related posts

related RabbitMQ posts

James Cunningham
James Cunningham
Operations Engineer at Sentry · | 18 upvotes · 58.2K views
atSentrySentry
RabbitMQ
RabbitMQ
Celery
Celery
#MessageQueue

As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

#MessageQueue

See more
Tim Abbott
Tim Abbott
Founder at Zulip · | 8 upvotes · 28.8K views
atZulipZulip
Redis
Redis
Python
Python
RabbitMQ
RabbitMQ

We've been using RabbitMQ as Zulip's queuing system since we needed a queuing system. What I like about it is that it scales really well and has good libraries for a wide range of platforms, including our own Python. So aside from getting it running, we've had to put basically 0 effort into making it scale for our needs.

However, there's several things that could be better about it: * It's error messages are absolutely terrible; if ever one of our users ends up getting an error with RabbitMQ (even for simple things like a misconfigured hostname), they always end up needing to get help from the Zulip team, because the errors logs are just inscrutable. As an open source project, we've handled this issue by really carefully scripting the installation to be a failure-proof configuration (in this case, setting the RabbitMQ hostname to 127.0.0.1, so that no user-controlled configuration can break it). But it was a real pain to get there and the process of determining we needed to do that caused a significant amount of pain to folks installing Zulip. * The pika library for Python takes a lot of time to startup a RabbitMQ connection; this means that Zulip server restarts are more disruptive than would be ideal. * It's annoying that you need to run the rabbitmqctl management commands as root.

But overall, I like that it has clean, clear semanstics and high scalability, and haven't been tempted to do the work to migrate to something like Redis (which has its own downsides).

See more

related Kafka posts

Eric Colson
Eric Colson
Chief Algorithms Officer at Stitch Fix · | 19 upvotes · 158.3K views
atStitch FixStitch Fix
Amazon EC2 Container Service
Amazon EC2 Container Service
Docker
Docker
PyTorch
PyTorch
R
R
Python
Python
Presto
Presto
Apache Spark
Apache Spark
Amazon S3
Amazon S3
PostgreSQL
PostgreSQL
Kafka
Kafka
#Data
#DataStack
#DataScience
#ML
#Etl
#AWS

The algorithms and data infrastructure at Stitch Fix is housed in #AWS. Data acquisition is split between events flowing through Kafka, and periodic snapshots of PostgreSQL DBs. We store data in an Amazon S3 based data warehouse. Apache Spark on Yarn is our tool of choice for data movement and #ETL. Because our storage layer (s3) is decoupled from our processing layer, we are able to scale our compute environment very elastically. We have several semi-permanent, autoscaling Yarn clusters running to serve our data processing needs. While the bulk of our compute infrastructure is dedicated to algorithmic processing, we also implemented Presto for adhoc queries and dashboards.

Beyond data movement and ETL, most #ML centric jobs (e.g. model training and execution) run in a similarly elastic environment as containers running Python and R code on Amazon EC2 Container Service clusters. The execution of batch jobs on top of ECS is managed by Flotilla, a service we built in house and open sourced (see https://github.com/stitchfix/flotilla-os).

At Stitch Fix, algorithmic integrations are pervasive across the business. We have dozens of data products actively integrated systems. That requires serving layer that is robust, agile, flexible, and allows for self-service. Models produced on Flotilla are packaged for deployment in production using Khan, another framework we've developed internally. Khan provides our data scientists the ability to quickly productionize those models they've developed with open source frameworks in Python 3 (e.g. PyTorch, sklearn), by automatically packaging them as Docker containers and deploying to Amazon ECS. This provides our data scientist a one-click method of getting from their algorithms to production. We then integrate those deployments into a service mesh, which allows us to A/B test various implementations in our product.

For more info:

#DataScience #DataStack #Data

See more
John Kodumal
John Kodumal
CTO at LaunchDarkly · | 14 upvotes · 69.8K views
atLaunchDarklyLaunchDarkly
Kafka
Kafka
Amazon Kinesis
Amazon Kinesis
Redis
Redis
Amazon EC2
Amazon EC2
Amazon ElastiCache
Amazon ElastiCache
Consul
Consul
Patroni
Patroni
TimescaleDB
TimescaleDB
PostgreSQL
PostgreSQL
Amazon RDS
Amazon RDS

As we've evolved or added additional infrastructure to our stack, we've biased towards managed services. Most new backing stores are Amazon RDS instances now. We do use self-managed PostgreSQL with TimescaleDB for time-series data—this is made HA with the use of Patroni and Consul.

We also use managed Amazon ElastiCache instances instead of spinning up Amazon EC2 instances to run Redis workloads, as well as shifting to Amazon Kinesis instead of Kafka.

See more
MQTT logo

MQTT

69
29
0
69
29
+ 1
0
A machine-to-machine Internet of Things connectivity protocol
    Be the first to leave a pro
    MQTT logo
    VS
    ZeroMQ logo
    Compare MQTT vs ZeroMQ
    MQTT logo
    MQTT
    VS
    ZeroMQ logo
    ZeroMQ
    Redis logo

    Redis

    13.9K
    9.2K
    3.7K
    13.9K
    9.2K
    + 1
    3.7K
    An in-memory database that persists on disk
    Redis logo
    VS
    ZeroMQ logo
    Compare Redis vs ZeroMQ
    Redis logo
    Redis
    VS
    ZeroMQ logo
    ZeroMQ

    related Redis posts

    Robert Zuber
    Robert Zuber
    CTO at CircleCI · | 21 upvotes · 45.7K views
    atCircleCICircleCI
    Amazon S3
    Amazon S3
    GitHub
    GitHub
    Redis
    Redis
    PostgreSQL
    PostgreSQL
    MongoDB
    MongoDB

    We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

    As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

    When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

    See more
    Thierry Schellenbach
    Thierry Schellenbach
    CEO at Stream · | 17 upvotes · 4.5K views
    atStreamStream
    RocksDB
    RocksDB
    Cassandra
    Cassandra
    Redis
    Redis
    #Databases
    #DataStores
    #InMemoryDatabases

    1.0 of Stream leveraged Cassandra for storing the feed. Cassandra is a common choice for building feeds. Instagram, for instance started, out with Redis but eventually switched to Cassandra to handle their rapid usage growth. Cassandra can handle write heavy workloads very efficiently.

    Cassandra is a great tool that allows you to scale write capacity simply by adding more nodes, though it is also very complex. This complexity made it hard to diagnose performance fluctuations. Even though we had years of experience with running Cassandra, it still felt like a bit of a black box. When building Stream 2.0 we decided to go for a different approach and build Keevo. Keevo is our in-house key-value store built upon RocksDB, gRPC and Raft.

    RocksDB is a highly performant embeddable database library developed and maintained by Facebook’s data engineering team. RocksDB started as a fork of Google’s LevelDB that introduced several performance improvements for SSD. Nowadays RocksDB is a project on its own and is under active development. It is written in C++ and it’s fast. Have a look at how this benchmark handles 7 million QPS. In terms of technology it’s much more simple than Cassandra.

    This translates into reduced maintenance overhead, improved performance and, most importantly, more consistent performance. It’s interesting to note that LinkedIn also uses RocksDB for their feed.

    #InMemoryDatabases #DataStores #Databases

    See more
    ActiveMQ logo

    ActiveMQ

    181
    213
    39
    181
    213
    + 1
    39
    A message broker written in Java together with a full JMS client
    ActiveMQ logo
    VS
    ZeroMQ logo
    Compare ActiveMQ vs ZeroMQ
    ActiveMQ logo
    ActiveMQ
    VS
    ZeroMQ logo
    ZeroMQ

    related ActiveMQ posts

    Naushad Warsi
    Naushad Warsi
    software developer at klingelnberg · | 1 upvotes · 31.2K views
    RabbitMQ
    RabbitMQ
    ActiveMQ
    ActiveMQ

    I use ActiveMQ because RabbitMQ have stopped giving the support for AMQP 1.0 or above version and the earlier version of AMQP doesn't give the functionality to support OAuth.

    If OAuth is not required and we can go with AMQP 0.9 then i still recommend rabbitMq.

    See more
    nanomsg logo

    nanomsg

    4
    5
    0
    4
    5
    + 1
    0
    A socket library
      Be the first to leave a pro
      nanomsg logo
      VS
      ZeroMQ logo
      Compare nanomsg vs ZeroMQ
      nanomsg logo
      nanomsg
      VS
      ZeroMQ logo
      ZeroMQ

      related Amazon SQS posts

      Tim Specht
      Tim Specht
      ‎Co-Founder and CTO at Dubsmash · | 14 upvotes · 23.3K views
      atDubsmashDubsmash
      Google BigQuery
      Google BigQuery
      Amazon SQS
      Amazon SQS
      AWS Lambda
      AWS Lambda
      Amazon Kinesis
      Amazon Kinesis
      Google Analytics
      Google Analytics
      #BigDataAsAService
      #RealTimeDataProcessing
      #GeneralAnalytics
      #ServerlessTaskProcessing

      In order to accurately measure & track user behaviour on our platform we moved over quickly from the initial solution using Google Analytics to a custom-built one due to resource & pricing concerns we had.

      While this does sound complicated, it’s as easy as clients sending JSON blobs of events to Amazon Kinesis from where we use AWS Lambda & Amazon SQS to batch and process incoming events and then ingest them into Google BigQuery. Once events are stored in BigQuery (which usually only takes a second from the time the client sends the data until it’s available), we can use almost-standard-SQL to simply query for data while Google makes sure that, even with terabytes of data being scanned, query times stay in the range of seconds rather than hours. Before ingesting their data into the pipeline, our mobile clients are aggregating events internally and, once a certain threshold is reached or the app is going to the background, sending the events as a JSON blob into the stream.

      In the past we had workers running that continuously read from the stream and would validate and post-process the data and then enqueue them for other workers to write them to BigQuery. We went ahead and implemented the Lambda-based approach in such a way that Lambda functions would automatically be triggered for incoming records, pre-aggregate events, and write them back to SQS, from which we then read them, and persist the events to BigQuery. While this approach had a couple of bumps on the road, like re-triggering functions asynchronously to keep up with the stream and proper batch sizes, we finally managed to get it running in a reliable way and are very happy with this solution today.

      #ServerlessTaskProcessing #GeneralAnalytics #RealTimeDataProcessing #BigDataAsAService

      See more
      Praveen Mooli
      Praveen Mooli
      Technical Leader at Taylor and Francis · | 11 upvotes · 38.1K views
      MongoDB Atlas
      MongoDB Atlas
      Amazon S3
      Amazon S3
      Amazon DynamoDB
      Amazon DynamoDB
      Amazon RDS
      Amazon RDS
      Serverless
      Serverless
      Docker
      Docker
      Terraform
      Terraform
      Travis CI
      Travis CI
      GitHub
      GitHub
      RxJS
      RxJS
      Angular 2
      Angular 2
      AWS Lambda
      AWS Lambda
      Amazon SQS
      Amazon SQS
      Amazon SNS
      Amazon SNS
      Amazon Kinesis Firehose
      Amazon Kinesis Firehose
      Amazon Kinesis
      Amazon Kinesis
      Flask
      Flask
      Python
      Python
      ExpressJS
      ExpressJS
      Node.js
      Node.js
      Spring Boot
      Spring Boot
      Java
      Java
      #Data
      #Devops
      #Webapps
      #Eventsourcingframework
      #Microservices
      #Backend

      We are in the process of building a modern content platform to deliver our content through various channels. We decided to go with Microservices architecture as we wanted scale. Microservice architecture style is an approach to developing an application as a suite of small independently deployable services built around specific business capabilities. You can gain modularity, extensive parallelism and cost-effective scaling by deploying services across many distributed servers. Microservices modularity facilitates independent updates/deployments, and helps to avoid single point of failure, which can help prevent large-scale outages. We also decided to use Event Driven Architecture pattern which is a popular distributed asynchronous architecture pattern used to produce highly scalable applications. The event-driven architecture is made up of highly decoupled, single-purpose event processing components that asynchronously receive and process events.

      To build our #Backend capabilities we decided to use the following: 1. #Microservices - Java with Spring Boot , Node.js with ExpressJS and Python with Flask 2. #Eventsourcingframework - Amazon Kinesis , Amazon Kinesis Firehose , Amazon SNS , Amazon SQS, AWS Lambda 3. #Data - Amazon RDS , Amazon DynamoDB , Amazon S3 , MongoDB Atlas

      To build #Webapps we decided to use Angular 2 with RxJS

      #Devops - GitHub , Travis CI , Terraform , Docker , Serverless

      See more

      related Celery posts

      James Cunningham
      James Cunningham
      Operations Engineer at Sentry · | 18 upvotes · 58.2K views
      atSentrySentry
      RabbitMQ
      RabbitMQ
      Celery
      Celery
      #MessageQueue

      As Sentry runs throughout the day, there are about 50 different offline tasks that we execute—anything from “process this event, pretty please” to “send all of these cool people some emails.” There are some that we execute once a day and some that execute thousands per second.

      Managing this variety requires a reliably high-throughput message-passing technology. We use Celery's RabbitMQ implementation, and we stumbled upon a great feature called Federation that allows us to partition our task queue across any number of RabbitMQ servers and gives us the confidence that, if any single server gets backlogged, others will pitch in and distribute some of the backlogged tasks to their consumers.

      #MessageQueue

      See more
      Kafka Manager logo

      Kafka Manager

      38
      45
      0
      38
      45
      + 1
      0
      A tool for managing Apache Kafka, developed by Yahoo
        Be the first to leave a pro
        Kafka Manager logo
        VS
        ZeroMQ logo
        Compare Kafka Manager vs ZeroMQ
        Kafka Manager logo
        Kafka Manager
        VS
        ZeroMQ logo
        ZeroMQ

        related Kafka Manager posts

        Conor Myhrvold
        Conor Myhrvold
        Tech Brand Mgr, Office of CTO at Uber · | 3 upvotes · 77.9K views
        atUber TechnologiesUber Technologies
        Kafka Manager
        Kafka Manager
        Kafka
        Kafka
        GitHub
        GitHub
        Apache Spark
        Apache Spark
        Hadoop
        Hadoop

        Why we built Marmaray, an open source generic data ingestion and dispersal framework and library for Apache Hadoop :

        Built and designed by our Hadoop Platform team, Marmaray is a plug-in-based framework built on top of the Hadoop ecosystem. Users can add support to ingest data from any source and disperse to any sink leveraging the use of Apache Spark . The name, Marmaray, comes from a tunnel in Turkey connecting Europe and Asia. Similarly, we envisioned Marmaray within Uber as a pipeline connecting data from any source to any sink depending on customer preference:

        https://eng.uber.com/marmaray-hadoop-ingestion-open-source/

        (Direct GitHub repo: https://github.com/uber/marmaray Kafka Kafka Manager )

        See more
        CloudAMQP logo

        CloudAMQP

        36
        22
        6
        36
        22
        + 1
        6
        RabbitMQ as a Service
        CloudAMQP logo
        VS
        ZeroMQ logo
        Compare CloudAMQP vs ZeroMQ
        CloudAMQP logo
        CloudAMQP
        VS
        ZeroMQ logo
        ZeroMQ
        WCF logo

        WCF

        33
        13
        0
        33
        13
        + 1
        0
        A runtime and a set of APIs for building connected, service-oriented applications
          Be the first to leave a pro
          WCF logo
          VS
          ZeroMQ logo
          Compare WCF vs ZeroMQ
          WCF logo
          WCF
          VS
          ZeroMQ logo
          ZeroMQ
          Azure Service Bus logo

          Azure Service Bus

          27
          4
          0
          27
          4
          + 1
          0
          Reliable cloud messaging as a service (MaaS)
            Be the first to leave a pro
            Azure Service Bus logo
            VS
            ZeroMQ logo
            Compare Azure Service Bus vs ZeroMQ
            Azure Service Bus logo
            Azure Service Bus
            VS
            ZeroMQ logo
            ZeroMQ
            Apache NiFi logo

            Apache NiFi

            24
            9
            2
            24
            9
            + 1
            2
            A reliable system to process and distribute data
            Apache NiFi logo
            VS
            ZeroMQ logo
            Compare Apache NiFi vs ZeroMQ
            Apache NiFi logo
            Apache NiFi
            VS
            ZeroMQ logo
            ZeroMQ
            Mosquitto logo

            Mosquitto

            24
            16
            2
            24
            16
            + 1
            2
            An open source message broker that implements the MQTT protocol
            Mosquitto logo
            VS
            ZeroMQ logo
            Compare Mosquitto vs ZeroMQ
            Mosquitto logo
            Mosquitto
            VS
            ZeroMQ logo
            ZeroMQ
            NServiceBus logo

            NServiceBus

            16
            4
            0
            16
            4
            + 1
            0
            Enterprise-grade scalability and reliability for your workflows and integrations
              Be the first to leave a pro
              NServiceBus logo
              VS
              ZeroMQ logo
              Compare NServiceBus vs ZeroMQ
              NServiceBus logo
              NServiceBus
              VS
              ZeroMQ logo
              ZeroMQ
              XMPP logo

              XMPP

              14
              5
              0
              14
              5
              + 1
              0
              An open XML technology for real-time communication
                Be the first to leave a pro
                XMPP logo
                VS
                ZeroMQ logo
                Compare XMPP vs ZeroMQ
                XMPP logo
                XMPP
                VS
                ZeroMQ logo
                ZeroMQ
                Confluent logo

                Confluent

                13
                2
                0
                13
                2
                + 1
                0
                A stream data platform to help companies harness their high volume real-time data streams
                  Be the first to leave a pro
                  Confluent logo
                  VS
                  ZeroMQ logo
                  Compare Confluent vs ZeroMQ
                  Confluent logo
                  Confluent
                  VS
                  ZeroMQ logo
                  ZeroMQ