[Standards] XEP-0060, offline modifications and efficient synchronization

Matthew Wild mwild1 at gmail.com
Sat Sep 5 20:31:38 UTC 2015

On 5 September 2015 at 15:22, Matthieu Rakotojaona
<matthieu.rakotojaona at gmail.com> wrote:
> Hey everyone,
> I'm currently toying with XEP-0060 and have found what I think is a
> shortcoming with the spec (or possibly with my knowledge)
> Consider this use case:
> * Patrick is a publisher to a given node, Sandra is a subscriber to the
>   same node
> * Sandra is online
> * Patrick publishes something, the notification goes to Sandra (either
>   with or without payload, Sandra is able to get the item)
> * Sandra disconnects
> * Patrick modifies the item and publishes 7 other (that's an arbitrary
>   number)
> * Because the pubsub service is configured like that, no notification is
>   sent to Sandra
> * Sandra connects and gets the last published item
> At that point Sandra sees that there is at least 1 new item (the last
> one). However she doesn't know which one have changed. She can request
> the latest items through the max_items query, but she doesn't know how
> many; the only sure way to make sure she's up to date is to query ALL
> items.
> She could use XEP-0313 (MAM), but:
> - Not all pubsub implementations allow MAMing them (prosody is one of
>   them)
> - MAM only allows something like "give me everything since this moment",
>   however using dates is always problematic (clocks are not
>   synchronized, time can drift, ...)
> Basically the problem here is when you have a persisting node where
> items can be modified. You need to get some "checkpoints" and be able to
> query the pubsub service from that checkpoint to get everything that
> happened.
> Has anyone had this issue ? If you did, how did you solve it ?

Yes, this has been discussed before. A XEP came from it, take a read
through this thread:

It's not perfect, but much simpler than your proposal.


More information about the Standards mailing list