-
Zash
In pubsub, is there a difference between pubsub#max_items=0 and pubsub#persist_items=false ?
-
edhelas
its been 30sec, I'm still thinking, and I don't have an answer yet :D
-
flow
Zash, probably not. but I think as soon as max_items > 0, then persist_items is of interest
-
Zash
what does max_items do if persist = false?
-
flow
under that assumption that persistence here means "store items in persitent storage", then max_items limits the number of items in volatile memory?
-
Zash
I'm under the impression that 'max_items' limit the number of items in _persistent_ storage
-
flow
the field labes gives the impression, yes
-
flow
even though, persist could mean here either on persistent storage or in volatile memory
-
Zash
isn't that an implementation detail in any case?
-
Zash
or internal something something
-
flow
define "that"?
-
Zash
"persistent storage" vs "volatile"
-
Zash
Why does that matter to a network protocol?
-
flow
In any case, I believe the description of pubsub#max_items "Max # of items to persist.…" to be ambiguous
-
flow
well it sure does matter to the user if his items are permanently stored or in volatile memory
-
flow
Zash, a pubsub implementation may not implement a persitent storage backend for its items (like prosody at the beginning). In that case, I'd say that the implementation can not allow persist_items=true
-
flow
However, an pubsub implementation may implement persitent storage, but also allows a node to be configured so that its items are only stored in volatile memory (perist_items=false)
-
Zash
Last time my understanding changed to be that persist_items=false means that events are broadcast and then *poof* gone
-
flow
Maybe, as I said, I beleive the specification to be ambiguous here. And a quick search of persist_items in xep60 did not clarify this for me
-
jonas’
just xep0060 things
-
Zash
indeed
-
jonas’
though the true xep0060 experience would've been if a `persist_nonvolatile` setting popped up which nobody had seen before which switches between the three behaviours
-
jonas’
(of course, persist_items=false and persist_nonvolatile=true would be undefined)
-
Zash
I've considered a way to configure which internal API to use