RubenVerborgh / solid-server-architecture

Proposed architecture for a Solid server
https://rubenverborgh.github.io/solid-server-architecture/solid-architecture-v1-3-0.pdf
13 stars 2 forks source link

ACL cache component #25

Closed kjetilk closed 5 years ago

kjetilk commented 5 years ago

I think an ACL cache is a very important part of a Solid server, as every request will lead to multiple queries towards it. Now, I understand that ACL is part of the Authorization, and that it is designed to encompass more than ACL, but as far as I can see, it is unclear from the architecture how it will be maintained and interacted with.

If designed as a write-through cache, it seems to need to intercept Operations on the ResourceStore. If designed with separate cache maintenance systems, the AclBasedAuthorizer needs to be detailed. I'm sure there are more options too.

RubenVerborgh commented 5 years ago

This part has not been detailed indeed; here's a sketch of how I'd expect it to work:

AclCache has a corresponding ResourceStore implementation, which follows a decorator pattern and wraps around the main ResourceStore. It informs AclCache of all modifications, such that it can invalidate its cache.

kjetilk commented 5 years ago

Right! I would love to see that in the diagram before the launch of coding :-)

RubenVerborgh commented 5 years ago

We can definitely make a zoomed-in diagram for that part.