Reimagining caching invalidation for a faster & more scalable Node.js app