Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Using ActivityPub as a simpler communication channel between social agents

Aperta
#331 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
25/100
Tipo di issue
Funzionalità
Chiarezza
Da chiarire
Stato di attività
Ferma

Direzione di ricerca

La issue propone di sostituire i canali Solid Notification per connessione con messaggi inbox di ActivityPub, ma non indica file del repository, test o punti di ingresso dell’implementazione. Inizia esaminando la specifica esistente per la comunicazione e le notifiche; definisci l’ambito richiesto e i criteri di accettazione prima dell’implementazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

In SAI, users are supposed to watch, with webhooks, the reciprocal Social Agent Registration of all their contacts. This allows them to know when a new resource has been shared with them. Eventually they will then create/regenerate a Delegated Data Grant for all the apps that have requested access to the same type of resource.

On my local ActivityPods Pod provider, I host 500 users. Since these users have had a lot of interactions, we can assume that each one of them has an average of 50 connections to other users. This means that there are 500 x 50 = 25'000 connections to manage.

To watch if one of their contact has shared a resource with them, the server needs to create a webhook Solid Notification channel for each of these connection. This means creating 25'000 Solid Notifications channels.

For security reasons, we also need to have a unique URL for every receiving webhook. In ActivityPods, we keep track of this unique URL with a custom Webhook resource. So we need 25'000 of these resources as well.

This means we have to create 50'000 resources just to keep track of the communication between our 500 users. And I consider this as a small server.

But creating the Solid Notifications webhook channel is not all ! In a multi-host environment, we must also deal with the case when the server of the sender or recipient goes down. Should the Solid notification channel or webhook be deleted? In fact, the server must continually ensure that the communication channel stays open between the users. If it fails, then users may miss some important update.

Alternative

With ActivityPub, you have one way to communicate with any user: their inbox.

No need to pre-establish a webhook connection beforehand.

Security is guaranteed by HTTP signature.

If a Social Agent Registration has been updated, a single activity can be sent to notify about the update:

{
  type: "Update",
  actor: "https://mypod.store/alice",
  object: "https://mypod.store/alice/path/to/social-agent-registration",
  to: "https://mypod.store/bob"
}

The server could even be more direct and notify about the DataGrant that has been created (Create > interop:DataGrant). This way, the recipient doesn't need to go through the whole Social Agent Registration to find what new data grant has been shared. We would not need to deal with all these immutable data, that are great in theory, but difficult to manage.

Lingua principale
Bikeshed
Stelle
58
Fork
18
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di solid/data-interoperability-panel

Tutte le issue di solid/data-interoperability-panel

Issue simili

Altre issue su Backend & API Design

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.