Geeks With Blogs

Arthur Zubarev Compudicted

Here at work we have recently came to a need to share lots of data between a large amount of data consumers.

The data share had to be highly available, reliable, yet fast and simple to access.

Without thinking twice creating a database looked like an option. However, given the complexity it adds to maintain yet another database and the costs associated we rushed ourselves to a quest of seeking for alternatives.

While some were poking around the Web I reached out to Scott Hanselman who instantly suggested we use Velocity and who also had a Podcast on it back in June 2008. Besides, since then the Microsoft's project has advanced to CTP3 stage and seems like it is nearing the RTM.

As per the MSDN, Velocity is an implementation of a "highly scalable in-memory application cache for all kinds of data".

At first I murmured to myself, why another if we already have the in-memory caching capabilities with .Net Enterprise Library Caching Block?

Well, nothing is all that simple, it turned out, Velocity has a number of superior features. To me most notable are:

  • Auto-balancing
  • Access to cache is simple, any CLR object can be used to put inside it
  • Can be part of a database (clustered) or in a folder share or even in embedded mode
  • Can work with ASP.NET
  • Concurency model includes pessimistic or optimistic conflict resolution
  • Nearly any programming language can be used to develop with Velocity
  • Can be implemented probably on several dozen servers, thus providing enormous redundancy and scalability

This array (besides, it is only a subset) of features looks very impressive to me and wet my appetite to try the product out.

For most recent news or changes I suggest you refer to the team's blog at

The product has an active forum at

I would recommend architects or lead developers to get yourself familiar with the forthcoming product.

I would download the latest CTP to try to experiment with it, time permits, and report back to you how does it feel like working with Velocity.



Posted on Thursday, April 30, 2009 2:59 PM | Back to top

Comments on this post: MS Project Code Named "Velocity"

# re: MS Project Code Named "Velocity"
Requesting Gravatar...
I think the key here with Velocity is it's distributed caching. In a web-farm environment, cache is less effective because you'll need to cache on each machine individually. With velocity, or other distributed caching solutions (e.g., memcached, etc.) you use a server/servers as a caching server and have your app/web servers talk to the caching servers single cache repository. There are other advantages, but that's the key.
Left by SanjayU on May 01, 2009 11:04 AM

# re: MS Project Code Named "Velocity"
Requesting Gravatar...
i've used free version of NCache as a third
party cache provider and it was good. <a href=">cache_express is the free version.

Left by shane on Apr 08, 2011 3:20 AM

Your comment:
 (will show your gravatar)

Copyright © Compudicted | Powered by: