Node.js caching layer with flexible invalidation based around 'tags'.