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


+ 1

+ 1
Add tool

Gearman vs NSQ: What are the differences?

Developers describe Gearman as "A generic application framework to farm out work to other machines or processes". Gearman allows you to do work in parallel, to load balance processing, and to call functions between languages. It can be used in a variety of applications, from high-availability web sites to the transport of database replication events. On the other hand, NSQ is detailed as "A realtime distributed messaging platform". NSQ is a realtime distributed messaging platform designed to operate at scale, handling billions of messages per day. It promotes distributed and decentralized topologies without single points of failure, enabling fault tolerance and high availability coupled with a reliable message delivery guarantee. See features & guarantees.

Gearman and NSQ can be primarily classified as "Message Queue" tools.

Some of the features offered by Gearman are:

  • Open Source It’s free! (in both meanings of the word) Gearman has an active open source community that is easy to get involved with if you need help or want to contribute. Worried about licensing? Gearman is BSD
  • Multi-language - There are interfaces for a number of languages, and this list is growing. You also have the option to write heterogeneous applications with clients submitting work in one language and workers performing that work in another
  • Flexible - You are not tied to any specific design pattern. You can quickly put together distributed applications using any model you choose, one of those options being Map/Reduce

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

  • support distributed topologies with no SPOF
  • horizontally scalable (no brokers, seamlessly add more nodes to the cluster)
  • low-latency push based message delivery (performance)

"Free" is the top reason why over 10 developers like Gearman, while over 23 developers mention "It's in golang" as the leading cause for choosing NSQ.

NSQ is an open source tool with 15.6K GitHub stars and 2.03K GitHub forks. Here's a link to NSQ's open source repository on GitHub.

According to the StackShare community, NSQ has a broader approval, being mentioned in 21 company stacks & 8 developers stacks; compared to Gearman, which is listed in 19 company stacks and 5 developer stacks.

Advice on Gearman and NSQ
Pramod Nikam
Co Founder at Usability Designs · | 2 upvotes · 212.2K views
Needs advice
Apache ThriftApache Thrift

I am looking into IoT World Solution where we have MQTT Broker. This MQTT Broker Sits in one of the Data Center. We are doing a lot of Alert and Alarm related processing on that Data, Currently, we are looking into Solution which can do distributed persistence of log/alert primarily on remote Disk.

Our primary need is to use lightweight where operational complexity and maintenance costs can be significantly reduced. We want to do it on-premise so we are not considering cloud solutions.

We looked into the following alternatives:

Apache Kafka - Great choice but operation and maintenance wise very complex. Rabbit MQ - High availability is the issue, Apache Pulsar - Operational Complexity. NATS - Absence of persistence. Akka Streams - Big learning curve and operational streams.

So we are looking into a lightweight library that can do distributed persistence preferably with publisher and subscriber model. Preferable on JVM stack.

See more
Replies (1)
Naresh Kancharla
Staff Engineer at Nutanix · | 4 upvotes · 209.4K views

Kafka is best fit here. Below are the advantages with Kafka ACLs (Security), Schema (protobuf), Scale, Consumer driven and No single point of failure.

Operational complexity is manageable with open source monitoring tools.

See more
Get Advice from developers at your company using Private StackShare. Sign up for Private StackShare.
Learn More