[rabbitmq-discuss] request for help!
Colin Clark
colin at cloudeventprocessing.com
Mon May 10 16:37:29 BST 2010
It does, thank you - and it points to the need for me to re-read the
spec again!
:)
On 5/10/2010 10:30 AM, Robert Godfrey wrote:
> Hi Colin,
>
> On 10 May 2010 16:32, Colin Clark<colin at cloudeventprocessing.com> wrote:
>
>> In regards to the once-and-only-once discussion below:
>>
>> In many financial formats, like FIX and others, we utilize message ID's that
>> help with this behavior a lot. It also prevents from messages being
>> delivered out of sequence. For example.
>>
>> Client logs in - server and client at message ID of 0,
>> every message that the server sends has an incremented ID,
>> if the client receives an unexpected ID, it can either request a retransmit
>> from the last known or kill the session,
>> when a client logs back in, the client logs in with the expected ID, server
>> & client negotiate and session resumes.
>> (there are id's for both the client& server messages, both incremented for
>> each message and the above behavior applies on both sides of the connection)
>>
>> FIX employs an optimistic delivery protocol, i.e., assume that it was
>> received. There is no session level ack. Only an ack at the application
>> level; and that ack is not mandatory. Use of the message ID provides the
>> once& only once and in order semantics required for trading; a behavior
>> that is obviously very useful elsewhere as well.
>>
>> Using sequence #'s also allows for advanced concepts such as flow control -
>> I haven't read enough of the spec yet to see if that's a feature yet or not.
>>
> We use sequence numbers for flow control, this is separate from the
> tag used for de-duplication.
>
>
>> I do agree, if a message is sent, then an ack is waited for, sending an ack
>> of ack seems a little over kill to me. Perhaps it's time for me to read the
>> whole spec again.
>>
>>
> As I (and Rafi who seems to have simultaneously said much the same
> thing :-) ) have said, this is not required behaviour. You can
> *choose* to behave in this way, but for the use case above I very much
> doubt that is how you would want to behave. The receiver can
> periodically notify the sender as to the high-watermark of messages
> that it considers settled - this will give the same behaviour as
> above.
>
> Hope this helps,
> Rob
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.rabbitmq.com/pipermail/rabbitmq-discuss/attachments/20100510/759fdec1/attachment.htm
More information about the rabbitmq-discuss
mailing list