Using ActivityPub as a simpler communication channel between social agents
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 25/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Lĩnh vực
- backend-api-design, distributed-systems
Hướng nghiên cứu
Issue đề xuất thay thế các kênh Solid Notification theo từng kết nối bằng các thông báo inbox của ActivityPub, nhưng không nêu tên tệp nào trong repository, các bài kiểm thử hay các điểm bắt đầu triển khai. Trước tiên, hãy xem xét đặc tả giao tiếp và thông báo hiện có; xác định phạm vi cần thiết và các tiêu chí chấp nhận trước khi triển khai.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- Bikeshed
- Star
- 58
- Fork
- 18
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của solid/data-interoperability-panel
-
solid/data-interoperability-panel#338 · 11 bình luận · 1 người được giao ·
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
solid/data-interoperability-panel#337 · 1 bình luận ·
-
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 35/100
solid/data-interoperability-panel#336 · 2 bình luận ·
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
solid/data-interoperability-panel#335 · 3 bình luận ·
-
solid/data-interoperability-panel#334 · 5 bình luận · 1 người được giao ·
Tất cả issue của solid/data-interoperability-panel
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
mksglu/context-mode#1200 ·
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
-
clawsweeper:needs-maintainer-review clawsweeper:needs-product-decision clawsweeper:no-new-fix-pr impact:auth-provider issue-rating: 🌊 off-meta tidepool P2
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 80/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 75/100