w3c / activitypub

http://w3c.github.io/activitypub/
Other
1.24k stars 78 forks source link

How, if at all, does ActivityPub address the problem of viewing historical posts across instances? #450

Open SorteKanin opened 4 months ago

SorteKanin commented 4 months ago

I'm not very knowledgeable about ActivityPub so excuse my ignorance - I am coming at this mostly from what I know about how Lemmy and Mastodon functions.

The crucial issue in question is this issue which has now been open for almost 8 years: https://github.com/mastodon/mastodon/issues/34 (or this or this, if you will).

Basically the problem is this: If you start a new Mastodon or Lemmy instance up today and try to follow a user (on Mastodon) or a community (on Lemmy) from another already-established and older instance, you will practically speaking only see new posts from that user/community. You will not be able to browse through old posts from a user or see old community posts or even see the likes for those posts.

As many people in https://github.com/mastodon/mastodon/issues/34 points out (1, 2, 3, etc.), this seems like a huge UX problem and a serious dealbreaker and would likely make the fediverse a non-starter or disappointing experience for many casual users (i.e. most users).

What I'm wondering is:

  1. Does the underlying functionality of ActivityPub somehow cause this issue, or is this mostly a problem with the implementations in Lemmy and Mastodon?
  2. Could ActivityPub be adapted/changed/extended to better support a solution to this problem? Would that make sense or is it entirely in the hands of the implementation?
  3. If ActivityPub already does the best it can to support a solution to this problem, what is a recommended/feasible/sensible way to handle this problem? Does ActivityPub provide any methods or tools that could be used by implementers to address the problem?
snarfed commented 4 months ago

This is what the AP outbox collection is for. If your instance's server serves your past posts (etc) in your outbox, and another instance fetches it, that instance can then show those posts. Many projects serve historical posts in outboxes, and some fetch and backfill from them, but as you've noted, not all.

evanp commented 4 months ago

@SorteKanin I'd like to address these questions in order.

  1. As @snarfed mentioned, the outbox collection is for this exact purpose. AP has both push and pull functionality; the protocol provides everything that we need for the purpose of fetching historical activities.
  2. I think the current functionality works about as well as possible, and the design is really about the best we could do.
  3. I think one possibility is to create a Primer page on showing profiles and their existing activities, especially when previously unknown to the server.

I'm also happy to engage with implementers to see if there is guidance that can help. I'm going to mark this issue as needs-primer, to note that we should add some guidance to the AP primer docs.

SorteKanin commented 4 months ago

Thank you so much for the extremely quick and clear replies. I feel more reassured and hopeful that this issue can be resolved and isn't some kind of inherent design flaw in AP, thanks!