What are message_id and correlation_id in the message

I have recognized that service stack add two property to the message:
message_id : exists in all message
correlation_id: only exists in response message, it also is inq message Id.

So, i’m wondering what is it used for. I can’t found any helpful document for these property.
Can some one explain this?

Thank you.

The CorrelationId is in the Rabbit MQ library used to implement the RPC pattern over MQs it’s what the ServiceStack MQ Client used to implement its Request/Reply.

Thank mythz, that’s exactly what i want: a request - response model.
But i’m working in a MVC project with a pretty big request rate. With the implement of service stack, it create one temp queue in rabbit per request.
i’m afraid that it could cause performance issue in our system.
Are there any way to use one single queue for every request rather than temp queue for each of them?
Thank you.

You’re not going to be able to correlate the requests if all responses share the same queue, so your response handling should be decoupled from the request, but you can just specify your own queue in the ReplyTo instead of using a Temp Queue. Note different Response Types still need to use different queues.