Why are queues not automatically created for exchanges that are created/used as part of a Send?

1,226 views
Skip to first unread message

Jonathan Wong

unread,
May 6, 2016, 8:21:14 PM5/6/16
to masstransit-discuss
I deleted my other post because I thought it was asked previously. But, it wasn't, at least not in the same context.

I am evaluating MassTransit (and Automatonymous to follow)

Why are queues not automatically created for exchanges that are created/used as part of a Send operation?

My understanding is that Sends are like method invocations and Publishes are like event dispatching. If no one is listening to an event at the time it is dispatched then it can be dropped. A Send to me is more of a requirement to be executed once (or at least once in the case of RabbitMQ). Dropping messages from exchanges without a queue is in the realm of RabbitMQ, however, MT has the ability to create and bind a queue so the commands are not lost. If I had a workflow system to deploy I would need to make sure I mapped out the flow and publish from end(s) to start(s), so producers are never left without consumers. 

Please let me know if I'm looking at this wrong or there is a solution I am missing

Thanks!

Chris Patterson

unread,
May 8, 2016, 1:07:33 PM5/8/16
to masstrans...@googlegroups.com
I don't have a great answer for this - although typically a Send has been no different than a publish from a binding perspective. I suppose it wouldn't hurt to create a queue with the same name on a Send, but that is a major departure from the original design so this would probably be something you'd have to opt into, which would make it less valuable since it would not be obvious and the same experience you had would occur.

Hmm.


--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-dis...@googlegroups.com.
To post to this group, send email to masstrans...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/masstransit-discuss/a3f5c7fe-b6ba-479d-90e8-ce50d226fb92%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jonathan Wong

unread,
May 10, 2016, 1:13:25 PM5/10/16
to masstransit-discuss
[Solution]

Digging through the source I found the solution is to add querystring parameters as thus:

var sendEndpoint = bus.GetSendEndpoint(new Uri("rabbitmq://localhost/vhost1/exchange1?bind=true&queue=queue1")).Result;




On Sunday, May 8, 2016 at 10:07:33 AM UTC-7, Chris Patterson wrote:
I don't have a great answer for this - although typically a Send has been no different than a publish from a binding perspective. I suppose it wouldn't hurt to create a queue with the same name on a Send, but that is a major departure from the original design so this would probably be something you'd have to opt into, which would make it less valuable since it would not be obvious and the same experience you had would occur.

Hmm.

On Fri, May 6, 2016 at 5:21 PM, Jonathan Wong <jonh...@gmail.com> wrote:
I deleted my other post because I thought it was asked previously. But, it wasn't, at least not in the same context.

I am evaluating MassTransit (and Automatonymous to follow)

Why are queues not automatically created for exchanges that are created/used as part of a Send operation?

My understanding is that Sends are like method invocations and Publishes are like event dispatching. If no one is listening to an event at the time it is dispatched then it can be dropped. A Send to me is more of a requirement to be executed once (or at least once in the case of RabbitMQ). Dropping messages from exchanges without a queue is in the realm of RabbitMQ, however, MT has the ability to create and bind a queue so the commands are not lost. If I had a workflow system to deploy I would need to make sure I mapped out the flow and publish from end(s) to start(s), so producers are never left without consumers. 

Please let me know if I'm looking at this wrong or there is a solution I am missing

Thanks!

--
You received this message because you are subscribed to the Google Groups "masstransit-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-discuss+unsub...@googlegroups.com.

Chris Patterson

unread,
May 10, 2016, 2:01:13 PM5/10/16
to masstrans...@googlegroups.com
Yeah that's works too :)

And it's not really cheating. It's how it's meant to work!

__
Chris Patterson




To unsubscribe from this group and stop receiving emails from it, send an email to masstransit-dis...@googlegroups.com.

To post to this group, send email to masstrans...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages