Distributed Caching Architecture = Codename "Velocity"

Microsoft project code named "Velocity" provides a highly scalable in-memory application cache for all kinds of data. By using cache, your application performance can improve significantly by avoiding unnecessary calls to the data source.

By using distributed cache, your application can scale to match an increasing demand with increasing throughput. "Velocity" distributed cache is provided in the form of a cache cluster, simplifying your application code by managing the complexities of load balancing behind the scenes.

When you use "Velocity," you can retrieve data by using keys or other identifiers, called tags. "Velocity" supports optimistic and pessimistic concurrency models and a variety of cache configurations.

You can find the download for "Microsoft Project Code Named “Velocity” Community Technology Preview 1 (CTP1) " at the following link: http://www.microsoft.com/downloads/details.aspx?FamilyId=B24C3708-EEFF-4055-A867-19B5851E7CD2&displaylang=en

You can find a Microsoft Project Code Name "Velocity" - Samples at: http://code.msdn.microsoft.com/velocity/Release/ProjectReleases.aspx?ReleaseId=1120

There are some similar 3rd party solutions out there like memcached and NCache. memcached has a nice pedigree of users that include YouTube, Wikipedia, Digg, New York Times and other high-traffic sites. So clearly it’s proven itself pretty well.

I'm hoping to design a pluggable caching layer for a test site so that the underlying caching technology can be swapped out. It would be nice to compare the performance between memcached, NCache, and Velocity.

Interestingly this isn’t the first time I have been asked about distributed caching. Glad to see we have a Product Team supported solution shortly on its way.