I'm having my first contact with Vertx's EventBus and I realized there are two ways to submit a message. Used the send or publish method. I ask: What is the practical difference between using these two methods and in what scenario do they use each one?
Asked
Active
Viewed 3,601 times
1 Answers
20
Both send
and publish
are used to send a message to an event bus address. However there are some differences between the two.
By using publish
:
- A message is sent to one or multiple listeners
- All handlers listening against the address will be notified
- No answer is expected from handlers
By using send
:
- A message is sent to one and only one handler registered against the event bus address.
- If multiple handlers are registered, only one will be notified. The receiver will be selected by a "round-robin algorithm" as per the docs.
- The receiver can answer the message, this answer can be empty or contain a response body. A response timeout can also be specified.
In practical usage, publish
is quite useful to inform that an event has occured, whereas send
is quite handy for asking a treatment where the response matters.
Conceptually, publish
uses the publish/subscribe pattern whereas send
uses the request/response pattern.

Murat
- 1,135
- 8
- 12