Friday, April 9, 2010

Caches, write through and interesting semantics

Today I was using Groove (the Microsoft Office tool that allows peer to peer sharing and acts as a nice offline front end for SharePoint).

So imagine an ability to have an offline copy of a Sharepoint document store which you are sharing with others.

Now since this contains items from SharePoint what should the delete behaviors be? If I delete something from this store, should they be deleted from Sharepoint too? What if I don't have delete rights in Sharepoint but do in Groove? What if the person I am sharing the offline content with can delete it, s/he doesn't have rights to delete in SharePoint, but I do. So does my synch with SharePoint cause it to get deleted? So that's the beginning. Let's say that we allow the deletes - at least for now.

Now since the Groove tool is essentially an offline container of the content, it is behaving like a cache. Normally when we delete a container, we delete all the contents too. But if we trickle that delete down into the contents, we will potentially delete the contents from SharePoint which is probably not what you want to do. So here we have a case where an individual delete deletes the item from the cache and from the backing system. But a delete of the container doesn't push the delete to the backing system.

I wonder if there is a better way of thinking about this, because it feels strange (and delivers exactly the desired outcome!)

No comments:

Post a Comment