solid / solid-spec

Solid specification draft 0.7.0
Creative Commons Zero v1.0 Universal
1.13k stars 103 forks source link

[proposed spec change] subscribe to whole subtree of container #191

Closed michielbdejong closed 3 years ago

michielbdejong commented 5 years ago

no need to review this now, just documenting that this is something we're experimenting with in https://github.com/inrupt/websockets-pubsub

michielbdejong commented 5 years ago

See also #180

michielbdejong commented 5 years ago

Do not merge unless NSS also implements this.

RubenVerborgh commented 5 years ago

Thanks for clarifying the recursive part, @michielbdejong.

At this point, I want to express my concern regarding the number of notifications that will nee to be generated by the server, and processed by the receiver.

If we want recursive notifications, we might want to make such recursive subscriptions a) explicitly opt-in (so non-recursive is also still possible) and/or b) optional for the server.

michielbdejong commented 5 years ago

Yes, I see your point. But note that notifications will only be sent for resources that the app has read access to.

And even without that change, the number notifications to be sent (number of resources in a single container that the client is subscribed to) might be prohibitive, so this will generally increases the number in practice, but the worst-case number was already huge.

RubenVerborgh commented 5 years ago

But note that notifications will only be sent for resources that the app has read access to.

That doesn't necessarily make it better for the server though, because now every change within a subscribed subfolder should be ran through the ACL process.

the number notifications to be sent (number of resources in a single container that the client is subscribed to) might be prohibitive, so this will generally increases the number in practice, but the worst-case number was already huge.

Yes, but it used to be the case that you needed to do a lot of actions to get a large volume; now a single action can get you a large volume. That works both ways.

This reinforces my belief that we should design an update subscription mechanism instead of extending a quick hack that happened to be built at some point (https://github.com/solid/solid-spec/pull/179#issuecomment-497297385).

michielbdejong commented 5 years ago

every change within a subscribed subfolder should be ran through the ACL process.

that's already the case right? also if container subscription is not recursive?

design a proper notification mechanism from scratch

Sure, go ahead and propose something! Let me know if you want input. This PR just documents what inrupt/pod-server currently does.