Wayne Brantley - 148 - Feb 3, 2014

First of all, thanks for the RabbitMQ support.  I think this will be great.  I have a few questions/issues.

1)  When a message has no response, I would not want to publish to another queue.  The docs say we can use PublishResponsesWhiteList or DisablePublishingResponses.  However, the help (https://github.com/ServiceStack/ServiceStack/wiki/Rabbit-MQ#wiki-messages-with-responses-are-published-to-the-response-inq) indicates that disables the publishing of any response?  (Maybe that gray comment at bottom of this section should not be there?)

2)  In this section (https://github.com/ServiceStack/ServiceStack/wiki/Rabbit-MQ#wiki-messages-with-no-responses-are-sent-to-outq-topic) you talk about blocking until a message gets processed.  This would actually block until any message on the Hello queue was processed by any subscriber though, right (not just my calling code).  So the .Name would not necessarily be ‘world’.?

3)  How can we do the typical RPC type mechanism with your implementation?  http://www.rabbitmq.com/tutorials/tutorial-six-dotnet.html

Thanks.

  1. you’re looking at the wrong section, when a message has no response its published to the non-durable .outq: 
    https://github.com/ServiceStack/ServiceStack/wiki/Rabbit-MQ#wiki-messages-with-no-responses-are-sent-to-outq-topic

    2) Right, its any message in that queue, you would provide your own app-specific ids to correlate it with the request, if you want to block on a specific response use a unique replyTo queue: https://github.com/ServiceStack/ServiceStack/wiki/Rabbit-MQ#wiki-responses-from-messages-with-replyto-are-published-to-that-address

    3) Use a unique replyTo queue, like they do in the example. If you don’t want to put in your DTO, you can specify a message.ReplyId with your message which gets stored in RabbitMQ Message.CorrelationId.

Wayne Brantley:

1)  I think this is just a documentation issue then.  See here for what I am referencing.  http://tinypic.com/r/2q1uwew/8

3)  I think you need direct support for this.  Like it to be as easy as something like this.  https://github.com/mikehadlow/EasyNetQ/wiki/Request-Response

I know that’s what you are referencing, but the section and diagram above already talked about the “no response” workflow. The section you’re pointing to is the has “response” workflow.

The way to get a matching response is to use a unique replyTo queue. I can look at simplifying it. Feel free to suggest features in ServiceStack uservoice feature requests.

Wayne Brantley:

Ok, but if it is taking about the response workflow, I do not believe it should be talking about ‘no response’ options!  Anyway, was unclear to me and I know both products very well, leave it, change it, no matter!  :-)

I will offer that in uservoice.  I think SS should directly cover the common scenarios for MQ shown here.  http://www.rabbitmq.com/getstarted.html