[rabbitmq-discuss] [Q] best way to add a sequencer to the broker

Alexis Richardson alexis.richardson at cohesiveft.com
Mon Dec 29 19:08:04 GMT 2008


For many replay scenarios, you could set the order using a dictionary
ordering <s,n> with more than one option for s.  I.e, you could have
>1 sequencer indexed by s.  Or, you could let s index queues or
exchanges which would obviate the need for your implicit relay.

Otherwise it looks like you want globally serial ordering.  Is that the case?

a

On Mon, Dec 29, 2008 at 6:56 PM, Chuck Remes <cremes.devlist at mac.com> wrote:
> I want to set the sequence number in the single Sequencer.
>
> cr
>
> On Dec 29, 2008, at 12:17 PM, Alexis Richardson wrote:
>
>> Chuck
>>
>> Where do you want to set the sequence number?
>>
>> - at the Publisher(s)
>> - at the Exchanges(s)
>> - at the Queue(s)
>> - at your Sequencer(s)
>>
>> ?
>>
>> alexis
>>
>>
>>
>> On Mon, Dec 29, 2008 at 5:51 PM, Chuck Remes <cremes.devlist at mac.com>
>> wrote:
>>>
>>> On Dec 29, 2008, at 11:43 AM, Chuck Remes wrote:
>>>
>>>>
>>>> On Dec 29, 2008, at 10:18 AM, Ben Hood wrote:
>>>>>>
>>>>>> 3. Is there a way to make this more dynamic so I do not have to
>>>>>> declare all the exchanges up-front in this sequencer code? Ideally
>>>>>> this service could detect that new exchanges were declared by other
>>>>>> services and automatically subscribe to them to do the sequence
>>>>>> stamping and routing.
>>>>>
>>>>> I don't know if the terminology is right here, because you generally
>>>>> don't subscribe to an exchange, rather to a queue.
>>>>
>>>> You are right. I was confusing the terminology. Let me try again.
>>>>
>>>> As other services declare exchanges and publish to them, I would like
>>>> my Sequencer to dynamically detect the existence of a new Exchange so
>>>> it can create a queue, bind the new queue to the Exchange and receive
>>>> messages from it for processing and republishing.
>>>
>>>
>>> Let me provide more reasoning for why I would like to do this
>>> dynamically.
>>>
>>> PublisherA may create a durable topic Exchange called out.topic1.
>>> PublisherB may create a non-durable Exchange called out.topic2.
>>>
>>> The Sequencer has to republish all messages from both Exchanges to two
>>> new Exchanges that share the same semantics (durable vs non-durable,
>>> immediate, mandatory, etc). The Sequencer would need to declare a new
>>> durable Exchange called in.topic1 for republishing those messages.
>>> Likewise, it would declare a non-durable Exchange for publishing to
>>> in.topic2. (I hope I am not mixing up my durable/immediate/mandatory
>>> terminology with Exchanges when they apply to Queues or something.)
>>>
>>> A naive way of creating the Sequencer would be to hardcode all of
>>> these things but that could rapidly become a maintenance nightmare as
>>> the distributed application grows.
>>>
>>> cr
>>>
>>>
>>> _______________________________________________
>>> rabbitmq-discuss mailing list
>>> rabbitmq-discuss at lists.rabbitmq.com
>>> http://lists.rabbitmq.com/cgi-bin/mailman/listinfo/rabbitmq-discuss
>>>
>
>




More information about the rabbitmq-discuss mailing list