Just had a read through and it looks good overall. A few minor comments in
no particular order:
- The note at the end about rejected messages is not quite right.
Rejection does imply that the rejecting recipient will never be able to
deal with that message. The spec actually includes another disposition
called "releasing" which is more in line with the "I don't want this
message _yet_" thing that you describe, however messenger doesn't (yet)
expose that capability to the application.
- In your description of the sliding window semantics it might be worth
noting that messages won't be accepted until they slide off the window, so
you should probably always manually call accept when you are done
processing if your window is positive. For example if you have an incoming
window of 10, and you receive and process 5 messages and then no more
arrive for 2 hours, you're going to end up holding those messages in an
unaccepted state for 2 hours if you don't manually accept, and of course
this would be bad because the senders of those messages are going to be
sitting there for 2 hours waiting for you to accept them.
Put another way, the purpose of the windows is really to allow
messenger to bound how much state it needs to track, not to automatically
acknowledge stuff for you. The one exception to that is the case where you
have a window size of 0, in which case it will automatically accept for you
before you've even processed the message.
On Thu, Mar 14, 2013 at 4:39 PM, Michael Goulish <mgoul...@redhat.com>wrote:
> Checked in at
> This one has it all !
> Windows! Trackers! The joy of message acceptance
> and the crushing disappointment of message rejection!
> Flash animation! Soundtrack featuring local indie rock and urban folk
> Please take a look! Comment early and often !