Using ActivityPub as a simpler communication channel between social agents
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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di solid/data-interoperability-panel
-
solid/data-interoperability-panel#338 · 11 commenti · 1 assegnatario ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
solid/data-interoperability-panel#337 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
solid/data-interoperability-panel#336 · 2 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
solid/data-interoperability-panel#335 · 3 commenti ·
-
solid/data-interoperability-panel#334 · 5 commenti · 1 assegnatario ·
Tutte le issue di solid/data-interoperability-panel
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
speaches-ai/speaches#678 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
-
[BUG] ECR GetAuthorizationToken returns a proxyEndpoint for the default region, not the request's Apertabug ecr
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
conda-forge/spacy-feedstock#177 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100