Questions tagged [message-queue]

"Message queue" is a design pattern or software engineering component that defines discipline or API for communication between two or more interrelated processes or systems. The message queue enforces asynchronous processing and loose coupling. Depending on the implementation they may also provide delivery and order guarantees of the messages. Message processing guarantees are explicitly excluded from the design.

Message queue design pattern introduces an intermediary between the producer of messages and its consumer(s). This intermediary - the queue - accepts the messages and stores them until a consumer retrieves them or until some other event (e.g. expiration time). In general the producer does not know or care where, how, and when the messages in the queue will be consumed.

Software components such as MSMQ or IBM MQ or Tibco (usually called Queue Managers) provide queue storage and features for manipulation of messages in queues. These manipulations include: expiration, persistence, notification of expired messages (dead-letter queues), message cloning, queue security, distribution (between multiple Queue Managers).

This tag is best used for cross-platform message queuing questions. For questions about specific products, use or include the tag for that product:

3929 questions
643
votes
17 answers

ActiveMQ or RabbitMQ or ZeroMQ or

We'd be interested to hear any experiences with the pros and cons of ActiveMQ vs RabbitMQ vs ZeroMQ. Information about any other interesting message queues is also welcome.
Abie
  • 10,855
  • 6
  • 32
  • 39
529
votes
16 answers

When to use RabbitMQ over Kafka?

I've been asked to evaluate RabbitMQ instead of Kafka but found it hard to find a situation where a message queue is more suitable than Kafka. Does anyone know use cases where a message queue fits better in terms of throughput, durability, latency,…
Joe
  • 11,983
  • 31
  • 109
  • 183
288
votes
5 answers

Message Queue vs. Web Services?

Under what conditions would one favor apps talking via a message queue instead of via web services (I just mean XML or JSON or YAML or whatever over HTTP here, not any particular type)? I have to talk between two apps on a local network. One will be…
Dan Rosenstark
  • 68,471
  • 58
  • 283
  • 421
264
votes
2 answers

Why do we need message brokers like RabbitMQ over a database like PostgreSQL?

I am new to message brokers like RabbitMQ which we can use to create tasks / message queues for a scheduling system like Celery. Now, here is the question: I can create a table in PostgreSQL which can be appended with new tasks and consumed by the…
Yugal Jindle
  • 44,057
  • 43
  • 129
  • 197
188
votes
11 answers

Real world use of JMS/message queues?

I was just reading abit about JMS and Apache ActiveMQ. And was wondering what real world use have people here used JMS or similar message queue technologies for ?
nos
  • 223,662
  • 58
  • 417
  • 506
177
votes
12 answers

What's a good rate limiting algorithm?

I could use some pseudo-code, or better, Python. I am trying to implement a rate-limiting queue for a Python IRC bot, and it partially works, but if someone triggers less messages than the limit (e.g., rate limit is 5 messages per 8 seconds, and…
miniman
  • 1,887
  • 4
  • 15
  • 11
160
votes
7 answers

Message Queue vs Message Bus -- what are the differences?

And are there any? To me, MB knows both subscribers and publishers and acts as a mediator, notifying subscribers on new messages (effectively a "push" model). MQ, on the other hand, is more of a "pull" model, where consumers pull messages off a…
Anton Gogolev
  • 113,561
  • 39
  • 200
  • 288
153
votes
8 answers

JMS and AMQP - RabbitMQ

I am trying to understand what JMS and how it is connected to AMQP terminology. I know JMS is an API and AMQP is a protocol. Here are my assumptions (and questions as well) RabbitMQ uses AMQP protocol (rather implements AMQP protocol) Java clients…
Kevin Rave
  • 13,876
  • 35
  • 109
  • 173
138
votes
3 answers

What's the purpose of Kafka's key/value pair-based messaging?

All of the examples of Kafka | producers show the ProducerRecord's key/value pair as not only being the same type (all examples show ), but the same value. For example: producer.send(new ProducerRecord("someTopic",…
smeeb
  • 27,777
  • 57
  • 250
  • 447
126
votes
3 answers

Why use Celery instead of RabbitMQ?

From my understanding, Celery is a distributed task queue, which means the only thing that it should do is dispatching tasks/jobs to others servers and get the result back. RabbitMQ is a message queue, and nothing more. However, a worker could just…
Kar
  • 6,063
  • 7
  • 53
  • 82
122
votes
12 answers

What are good message queue options for nodejs?

Looking to use a message queue in a small web app I'm building with node.js. I looked at resque but not sure that's appropriate. The goal is to push notifications to clients based on backend and other client actions with socketio. I could do this…
Bjorn
  • 69,215
  • 39
  • 136
  • 164
113
votes
5 answers

What exactly is a Node.js event loop tick?

I've been getting more into the internals of the Node.js architecture, and a term I see coming up a lot is "tick" as in "next tick of the event loop" or the function nextTick(). What I haven't seen is a solid definition of what exactly a "tick" is.…
d512
  • 32,267
  • 28
  • 81
  • 107
110
votes
3 answers

What are the limits of messages, queues and exchanges?

What are the allowed types of messages (strings, bytes, integers, etc.)? What is the maximum size of a message? What is the maximum number of queues and exchanges?
tuchk4
  • 2,270
  • 5
  • 21
  • 34
110
votes
5 answers

What is the relationship between Looper, Handler and MessageQueue in Android?

I have checked the official Android documentation/guide for Looper, Handler and MessageQueue . But I couldn't get it. I am new to android, and got very confused with these concepts.
Blake
  • 7,367
  • 19
  • 54
  • 80
86
votes
4 answers

Message bus vs. Service bus vs. Event hub vs Event grid

I'm learning the messaging system and got confused by those terminology. All the messaging system below provides loose coupling between services with different sets of features. queue - FIFO, pulling mechanism, 1 consumer each queue but any number…
1
2 3
99 100