<p class="MsoNormal">We are looking at using your consistent hash exchange for
partitioning messages that we need to be processes synchronously based on a
partition key (GUID in our case). The issue we currently face is that we are
already using the routing key for subscriptions based on message type. As there
will be messages of multiple types for the same partition key this will result
in different routing keys and therefore different hashes of those keys for
message that we want partitioned into the same destination queue.</p>
<p class="MsoNormal">What would be the best way to go about trying to achieve
this? I have thought of the following options but do not know the relative
merits with respect to performance and the inner workings of RabbitMQ:</p>
<p class="MsoListParagraph" style="margin-left:38.25pt;text-indent:-36.0pt;
mso-list:l0 level1 lfo1"><!--[if !supportLists]-->i)<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">
</span><!--[endif]-->Hash based on the first or last portion of a
routing key (<HashME>.Iamused.For.Other.Routing)<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:38.25pt;text-indent:-36.0pt;
mso-list:l0 level1 lfo1"><!--[if !supportLists]-->ii)<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">
</span><!--[endif]-->Hash based on a Message Header<o:p></o:p></p>
<p class="MsoListParagraph" style="margin-left:38.25pt;text-indent:-36.0pt;
mso-list:l0 level1 lfo1"><!--[if !supportLists]-->iii)<span style="font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">
</span><!--[endif]-->Hash based on a Message Property</p><p class="MsoListParagraph" style="margin-left:38.25pt;text-indent:-36.0pt;
mso-list:l0 level1 lfo1">Is there any approach that you
would advocate or indeed strongly advise against?</p><p class="MsoNormal" style="margin-left:2.25pt"><o:p></o:p></p>
<p class="MsoNormal">Thank you in advance.<br></p><p class="MsoNormal"><o:p></o:p></p>