<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On 1 Jul 2009, at 22:45, Jean-Paul Calderone wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div>On Wed, 1 Jul 2009 11:15:35 +0100, Paul Thomas &lt;<a href="mailto:spongelavapaul@googlemail.com">spongelavapaul@googlemail.com</a>&gt; wrote:<br><blockquote type="cite">Hi,<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">I've hit a problem as my app has got bigger (about 30-40 widgets now, &nbsp;all <br></blockquote><blockquote type="cite">chattering roughly once every 2 seconds) where the reliable &nbsp;message <br></blockquote><blockquote type="cite">delivery mechanism is spiralling out of control. It seems that &nbsp;the constant <br></blockquote><blockquote type="cite">back and forth means that large 'baskets' of messages are &nbsp;resent. The more <br></blockquote><blockquote type="cite">this happens, the busier everything gets until the &nbsp;browser becomes <br></blockquote><blockquote type="cite">unresponsive.<br></blockquote><br>If you can produce a minimal example which demonstrates this behavior, it<br>would probably be very helpful in improving the situation.<br></div></blockquote><div><br></div><div>I've been tasked with doing this anyway to help us evaluate other solutions. I'm sure I can convince the boss to make it available.</div><br><blockquote type="cite"><div><blockquote type="cite"><br></blockquote><blockquote type="cite">There's a fix for it: [Divmod-dev] athena duplicate messages issue but &nbsp;I'm <br></blockquote><blockquote type="cite">slightly concerned about the potential for lost messages - and &nbsp;also <br></blockquote><blockquote type="cite">confused about how this could happen. Given that HTTP is a &nbsp;reliable <br></blockquote><blockquote type="cite">connection-oriented transport, where is the gap that messages &nbsp;can fall <br></blockquote><blockquote type="cite">through?<br></blockquote><br>Actually, HTTP is not a reliable transport. &nbsp;The most obvious shortcoming<br>it has is that there is no way for a server to know if a client received<br>a response or not, but there are others. &nbsp;So ReliableMessageDelivery is<br>necessary.<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><div><br></div><div>Got it.</div><br><blockquote type="cite"><div><blockquote type="cite"><br></blockquote><blockquote type="cite">I think I can cope with lost messages in most cases, so would it be &nbsp;useful <br></blockquote><blockquote type="cite">to add a kind of 'sendRemote' that was like 'callRemote' but &nbsp;didn't care <br></blockquote><blockquote type="cite">about a response? Or maybe this already exists and I've &nbsp;missed it?<br></blockquote><br>This is an interesting idea. &nbsp;I haven't considered having such a feature in<br>Athena before. &nbsp;It may be worth exploring. &nbsp;The first problem that comes to<br>mind is that if any part of a page uses callRemote, sendRemote's advantages<br>are largely lost. &nbsp;This would be because the messages generated by callRemote<br>will still need to be sent, so whatever retransmission logic is present in<br>ReliableMessageDelivery will still be invoked.<br></div></blockquote><div><br></div>Right - and I _would_ need both in the same page. Also, as Glyph points out, I wouldn't like out-of-order messages.</div><div><br><blockquote type="cite"><div><br><blockquote type="cite">Paul.<br></blockquote><blockquote type="cite"><br></blockquote><blockquote type="cite">P.S. this app is likely to get more noisy - is it likely that I'll &nbsp;have to <br></blockquote><blockquote type="cite">abandon Athena for Orbited or similar? I mean, are there &nbsp;architectural <br></blockquote><blockquote type="cite">differences that will prevent Athena scaling?<br></blockquote><blockquote type="cite"><br></blockquote><br>I certainly hope that Athena can handle whatever load you intended to put on<br>it, or that we can work together to fix whatever problems it has which would<br>prevent that. :)<br></div></blockquote></div><br><div>We'll be doing an evaluation soon. Performance will play a part but we also have to consider integration with UI toolkits (jQuery UI etc.). If we do stick with Athena, we'll be providing patches and tests.</div><div><br></div><div>Thanks to you both,</div><div>paul.</div></body></html>