AFS
Need for scaling led to reduction of client-server message traffic.
Once a file is cached, all operations are performed locally.
On close, if the file is modified, it is replaced on the server.
The client assumes that its cache is up to date, unless it receives a callback message from the server saying otherwise. On file open, if the client has received a callback on the file, it must fetch a new copy; otherwise it uses its locally-cached copy.