Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Shared Inbox #32

Open
fauno opened this issue Dec 26, 2023 · 7 comments
Open

Implement Shared Inbox #32

fauno opened this issue Dec 26, 2023 · 7 comments
Assignees
Labels
enhancement New feature or request

Comments

@fauno
Copy link
Collaborator

fauno commented Dec 26, 2023

For servers hosting many actors, delivery to all followers can result in an overwhelming number of messages sent. Some servers would also like to display a list of all messages posted publicly to the "known network". Thus ActivityPub provides an optional mechanism for serving these two use cases. -- https://www.w3.org/TR/activitypub/#shared-inbox-delivery

@fauno
Copy link
Collaborator Author

fauno commented Jan 10, 2024

What this means is:

  • Social Inbox should prefer to send activities to the remote actor's shared inboxes
  • Social Inbox actors could have a shared inbox to where other instances send activities

@fauno
Copy link
Collaborator Author

fauno commented Jan 19, 2024

Interesting discussion which mentions shared inboxes: https://hachyderm.io/@hrefna/111764000238281719

@fauno
Copy link
Collaborator Author

fauno commented Feb 2, 2024

Unfortunately there is a complication.
At the last minute of ActivityPub’s standardization, sharedInbox was
added as a form of mutated behavior from the previously described
publicInbox (which was a place for servers to share public content).
The motivation of sharedInbox is admirable: while ActivityPub is based
on explicit message sending to actors’ inbox endpoints, if an actor
on server A needs to send a message to 1000 followers on server B,
why should server A make 1000 separate requests when it could do it
in one?
A good point, but the primary mistake in how this one request is made;
rather than sending one message with a listing of all 1000 recipients
on that server (which would preserve the actor model integrity),
it was advocated that servers are already tracking follower information,
so the receiving server can decide whom to send the message to.
Unfortunately this decision breaks the actor model and also our suggested
solution to authorization; see MultiBox for a suggestion on how we
can solve this.
This is more serious than it seems; we cannot proceed to make the system
much safer to use without throwing out sharedInbox since we will
lose our ability to make intentional, directed messages.

source

@fauno
Copy link
Collaborator Author

fauno commented Feb 2, 2024

For the current purposes @RangerMauve I think it'd be enough to send activities to actor.sharedInbox if present, otherwise actor.inbox

@fauno fauno added the enhancement New feature or request label Feb 2, 2024
@fauno
Copy link
Collaborator Author

fauno commented Mar 14, 2024

Since mastodon.social has discovered some of our tests sites, it has been spamming them with Delete activities for Actor profiles, so a shared inbox would be useful in this case.

@sutty-coop
Copy link
Collaborator

Since mastodon.social has discovered some of our tests sites, it has been spamming them with Delete activities for Actor profiles, so a shared inbox would be useful in this case.

Doesn't Paginated Inbox solve the problem of overwhelming number of messages sent? @fauno

If it does, we could close this issue

@fauno
Copy link
Collaborator Author

fauno commented Oct 4, 2024

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: Backlog
Development

No branches or pull requests

2 participants