XSF Discussion - 2024-05-30


  1. MSavoritias fae.ve

    > Muc isn't anything like pubsub at all, that's kind of the problem with it, from each client you join a room, but can never know if you are still in the room without constantly asking ๐Ÿ’€ will this be fixed with MUX?

  2. MSavoritias fae.ve

    or maybe its a big departure from how it currently works and its just the self-ping thing atm

  3. manday

    So Pubsub is not prone to silent misses (why? how can the client be _sure_ that they are being published to, any more than the client could be sure that they get messages delivered to?), does have MUC something which pubsub doesn't have (I assumed that the many-to-many communication inherent to MUC can't be provided by pubsub, being 1-to-many)? I take it from Daniel's response there isn't?

  4. MattJ

    manday: generic pubsub does not care about your online status like MUC does

  5. MattJ

    I think the problem is exaggerated, and there are better solutions than "constantly asking" the MUC if you are still in it. You are always still in it, if everything is functioning correctly. The problem is that in some cases (server crashes or network failures) it's possible for the client to think it is still joined or for the server to think the client is still joined. By properly handling and detecting such edge cases, the problem can be resolved.

  6. MattJ

    Pubsub/MIX have similar edge cases too, but because they are used a lot less then people don't fret about it as much yet ๐Ÿ™‚

  7. MSavoritias fae.ve

    hmm. so the work is basically offloaded to the server to make sure that the group chat is up ?

  8. MSavoritias fae.ve

    and the client doesnt have to care as a result

  9. MSavoritias fae.ve

    that its up and that you are connected that is

  10. MattJ

    That is my preference, yes

  11. MattJ

    It's much more efficient

  12. MattJ

    Prosody and Conversations almost achieve a full solution, but AFAIK Conversations does not automatically rejoin, it just let's you know you are no longer in

  13. MattJ

    So you have to tap a rejoin button or somethinf

  14. MSavoritias fae.ve

    sure. i am just interested how it all works :D

  15. MattJ

    So you have to tap a rejoin button or something

  16. MSavoritias fae.ve

    so i am guessing that is the "hard fork" part of MUC and MIX

  17. MSavoritias fae.ve

    or one of them at least

  18. MSavoritias fae.ve

    gajim transparently rejoins in my experience

  19. MSavoritias fae.ve

    so it works nicely in this way

  20. MattJ

    At the surface people think so, but MIX (as currently defined) does not handle s2s failure at all, and is prone to message loss and ghost participants

  21. MattJ

    When I mention this, people tell me how easy it is to solve, but I say the same thing about MUC issues that people complain about ๐Ÿ™‚

  22. MSavoritias fae.ve

    > At the surface people think so, but MIX (as currently defined) does not handle s2s failure at all, and is prone to message loss and ghost participants why? is it because it just offloads to pubsub while MUC has mechanisms for it?

  23. MSavoritias fae.ve

    handling these things would be very desirable to me as i am the server :D

  24. MSavoritias fae.ve

    the ghost participants makes sense tho.especially in bigger rooms that would become a problem really fast

  25. MattJ

    MUC stores messages in the room archive, so no matter what happens you can rejoin and resync to get the real state of things. MIX (again, as currently specified) chooses to broadcast to participants and the messages are stored in each user's archive instead.

  26. MSavoritias fae.ve

    ah ok. makes sense

  27. MattJ

    That's fine, until there are s2s issues and some messages don't make it to your archive

  28. MSavoritias fae.ve

    yeah

  29. MattJ

    There is no sync or redelivery mechanism defined between your archive and the MIX channel

  30. MSavoritias fae.ve

    damn :/

  31. MattJ

    The whole problem space is related to https://en.m.wikipedia.org/wiki/Two_Generals'_Problem

  32. MattJ

    And you can make various protocol choices and shift the edge cases around, but you can never completely solve it, you just have to solve it to the level where it doesn't affect users

  33. MattJ

    The client can never be 100% sure whether it is in the room (even if it pings successfully, the room could become unreachable 1 millisecond later)

  34. MSavoritias fae.ve

    like the delivered reciept yeah

  35. MattJ

    Unless you make other choices which result in the server never being 100% certain the client is reachable

  36. MSavoritias fae.ve

    my thinking was that pinging all the time in various places sounds ineficient. in a p2p context at least

  37. MSavoritias fae.ve

    that is why i was thinking of a variant of multicast also

  38. MSavoritias fae.ve

    to bring network traffic down

  39. MSavoritias fae.ve

    but if MIX doesnt handle reliability well :/

  40. MattJ

    Yeah, pinging it not a great solution and does not really achieve anything you can't achieve in other ways with smart protocol design

  41. MattJ

    Yeah, pinging is not a great solution and does not really achieve anything you can't achieve in other ways with smart protocol design

  42. MSavoritias fae.ve

    i think there were some xeps around that were changing muc to a more "persistent" member lists

  43. MSavoritias fae.ve

    so maybe that is a way forward away from the constant pings

  44. MattJ

    Overlapping problem, not entirely the same one. We already have persistent member lists, almost since the beginning.

  45. MattJ

    They aren't used for delivery purposes though, delivery in MUC is to individual clients still

  46. MSavoritias fae.ve

    ah right. you need to make the messages as in the muc service itself a "subscription" service

  47. MSavoritias fae.ve

    > They aren't used for delivery purposes though, delivery in MUC is to individual clients still yeah i remember there is a xep to deliver to jid instead of devices thus eliminating the carbons "hack"

  48. MattJ

    I think that you're referring to PMs, and yeah, my "MUX" draft takes that approach

  49. MattJ

    MUX doesn't currently change how the group chat messages are delivered

  50. MattJ

    I think with MAM allowing for resync and implementations handling disconnection issues more consistently, that's fine

  51. MattJ

    E.g. if you restart some servers, they just come back up with an empty MUC, while all the remote clients think they are still "in" and receiving live messages. Prosody preserves remote clients across restarts now, and has done for some years. So it would be good to make that mandatory in the spec, etc.

  52. MattJ

    Or at least come up with some other solution that doesn't cause silent breakage (there are other ways)

  53. MSavoritias fae.ve

    > I think that you're referring to PMs, and yeah, my "MUX" draft takes that approach i was referring to https://xmpp.org/extensions/xep-0409.html > XEP-0409: IM Routing-NG

  54. MattJ

    Ah, yeah. That's outside of the context of group chats, but you're totally right that when we have that in place we could take advantage of it.

  55. manday

    >> I think that you're referring to PMs, and yeah, my "MUX" draft takes that approach > i was referring to https://xmpp.org/extensions/xep-0409.html >> XEP-0409: IM Routing-NG Why is that deferred? ๐Ÿ˜ถ

  56. MSavoritias fae.ve

    probably no change for like 6 months so its automatically added to deferred

  57. MSavoritias fae.ve

    yeah list change was 6 years ago

  58. MSavoritias fae.ve

    -> https://xmpp.org/extensions/xep-0409.html#appendix-revs

  59. manday

    "we havent adressed the issue in 6 years, therefore lets put the proposed solution on hold" ๐Ÿ™„

  60. MSavoritias fae.ve

    its in the suggested xeps to implement to be "future" compatible with xmpp in the compliance suite

  61. MSavoritias fae.ve

    then again MIX is there too

  62. cal0pteryx

    manday: > Every time you change your XEP, youโ€™ll provide the new version to the XMPP Editor, whoโ€™ll update the version on the website and send out an announcement to the list. If this isnโ€™t done for more than 12 months, then the XEP will be moved off Experimental to Deferred - if this happens, another update will put it back onto Experimental. https://xmpp.org/about/standards-process/

  63. cal0pteryx

    Nothing says 'on hold' ;)

  64. manday

    > past tense: deferred; past participle: deferred > > put off (an action or event) to a later time; postpone

  65. manday

    if std tracks doesn't explicitly redefine that word to mean something else then i'd say it implies just that

  66. manday

    if not, why call it that in the first place..,

  67. MSavoritias fae.ve

    the logic is also specified here https://xmpp.org/extensions/xep-0001.html#states

  68. MSavoritias fae.ve

    (not saying that this process could not be improved.)

  69. MattJ

    manday: deferred is a reactive status. Deferred is not the cause of people not working on it, people not working on it is the cause of Deferred.

  70. MattJ

    People are free to work on it at any time

  71. MattJ

    But if every unfinished thing is treated equally then we would be drowning in unfinished ideas

  72. singpolyma

    These specs that fix problems we all already fixed are always scary because they only simplify for new implementations and probably introduce new edge cases

  73. manday

    singpolyma: while i dont know enough to make a judgement i think id be fair to say that its trying to address the issue at the foundation because the curremt 'fix' looks like a workaround, no?

  74. singpolyma

    Maybe. But the current fix is working and widely deployed and we know it works (or at least we know any ways it doesn't). New stuff we're starting over and have to find out

  75. manday

    you re right ofc, i understand

  76. Kev

    And for IMNG it was discussed at the summit, folks promised to try implementing and report back.

  77. Zash

    One Of These Decades We Will Get Around To That

  78. singpolyma

    ๐Ÿ‘ด

  79. Kev

    > One Of These Decades We Will Get Around To That Indeed. It's not like I've been able to find time to do it yet.