What is the difference between BullMQ and other message queue implementations? [closed]
Asked Answered
C

1

12

I've been looking at the docs for BullMQ:

https://github.com/taskforcesh/bullmq

https://docs.bullmq.io/what-is-bullmq

I noticed in its comparison chart that it doesn't contain projects like RabbitMQ or NATS Streaming. BullMQ seems to be a solution for handling simple "jobs" across one or many servers.

Why is BullMQ more suitable for simple "jobs" than other message queue implementations? I'm trying to understand when it makes more sense to pick one implementation over another.

Cannibalism answered 22/10, 2021 at 16:51 Comment(3)
Comparing BullMQ to Rabbitmq is like comparing apples and oranges. BullMQ is a job queue implementation that support defining jobs like an orchestrator saga. While RabbitMQ, NATS, Kafka, MQTT and so on, are messaging queuesMiaow
@Miaow thanks for the response, I created the SO question because while I knew they would be apples and oranges, I couldn't understand why. Can NATS or RabbitMQ not do the job of BullMQ? I feel like they can?Cannibalism
No, not out of the box. That's because BullMQ an application layer on top of a message queue (Redis Stream). There are probably other libraries similar to BullMQ that works on top of other message brokers.Miaow
D
0

One difference is that Bullmq has no backend at all only Redis. All the messageQ-related logic is in the SDK.

Let's point out that bullMQ is designed mainly for nodejs there is work in progress for Python.

As I see it the main difference is that bullMQ has a parent-child relationship that can be used to create a flow.

Another feature I don't recall in other message queues is Sandboxed processors ( using nodejs worker threads)

I'm also suggesting to read about agenda

Donny answered 2/8, 2023 at 7:33 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.