this post was submitted on 18 Feb 2025
1 points (100.0% liked)

Forums and Threaded Discussions Task Force

0 readers
2 users here now

Discussion and announcements related to the SWICG Forums and Threaded Discussions Task Force.

This profile is a discussion forum category and shares content from users who post in its discussions.

founded 8 months ago
 

Just wrapped up a call with @[email protected] and @[email protected] to review their implementations of FEP 7888, specifically in relation to conversational backfill.

:heavy_check_mark: individual objects serve a context property :heavy_check_mark: that context property is a URL that resolves

One of the concerns raised was related to the OrderedCollection of items served by the context. Specifically, if the items presented in the collection were not in chronological order, NodeBB failed at importing some of the items as the inReplyTo referenced an object that did not exist.

The solution to this was to ensure that the collection items were in chronological order from oldest to newest. Once fixed:

:heavy_check_mark: the context resolved to an OrderedCollection containing objects :heavy_check_mark: NodeBB was able to pull in the entire conversation

NodeBB used to guard against this by ordering all received items by chronological order, but I realized that while this worked 99%+ of the time, there are some fun (ahem...) individuals who send objects with timestamps way in the future.

Personally I think removing the sorting just to fix one edge case was premature. At the same time, I think specifying that the OrderedCollection be sorted in chronological order should be a requirement.

cc @[email protected]

you are viewing a single comment's thread
view the rest of the comments
[โ€“] [email protected] 1 points 1 week ago (1 children)

@julian

yes, but they serve objects because we're radical implementors who don't do the whole activities thing ๐Ÿ˜ sorry in advance.

What if only the activity is signed (as is often the case) and the object is not fetchable due to let's say some network error?

[โ€“] [email protected] 1 points 1 week ago (1 children)

@[email protected] at least per our working implementation, the context only deals with public objects which should be fetchable by an instance (either anonymously or via signed GET).

@[email protected]'s 171b does what you suggest, sending the full signed (via proofs) activities, which in that sense is more performant as fewer network requests are required (just the one, really), and more reliable as you don't need to fetch the individual objects. However, requiring object integrity proofs is a burden that seems quite difficult to clear at present.

WordPress, NodeBB, and Mastodon are not built in such a way that activities are saved direct-to-database. The activities are consumed and a local representation is saved, which makes going reverse quite difficult, especially when it comes to content from outside the local instance.

[โ€“] [email protected] 1 points 1 week ago

@julian i see... In general i think in distributed systems it makes a lot of sense to keep the source intact while consuming the data you need. Other projects might need to consume a different set of fields and the overhead is minimal...

@silverpill