Local Cache

AppFabric’s local cache feature is disabled by default because of its implications on the behavior of your application. The local cache is not fully coherent with the authoritative cache hosts—it is only synchronized periodically, so it is possible for an AppFabric cache client to receive stale data.

ScaleOut’s local "client cache" is enabled by default for all named caches. The client cache is fully coherent with the distributed cache hosts and will not return stale data. This makes the client cache suitable for scenarios where objects are frequently updated and those updates must be sequentially consistent (and immediately visible) to all instances of your client application.

ScaleOut’s client cache achieves this consistency by performing an inexpensive version check with the authoritative service every time an object is accessed—if the client cache confirms that the latest version of your object is already available in your client process, the APIs will not pull the entire object over the network and will also avoid any deserialization overhead.

ScaleOut’s client cache can be disabled using the NamedCache.AllowClientCaching property. The reference documentation for this property also has information and guidelines for its usage.