Fast, reliable and smart caching system heavily based on streams.
Made with obelisk.js.
stores is a fast, reliable, smart caching system heavily based on streams.
stores deals transparently with cache stampede or cache miss storm for you. Basically, it ensures that only one request fetches the resource to be cached. Other ones are put in a queue and served ASAP, when the resource has been fetched or cached.
stores aims to be a solid caching facility that allows you to easily implement your custom backing store.
That said, it comes with a balanced
filesystem store and an express middleware.
npm install stores --save --production
You're in hurry, I can understand that.
Here is an example on how you can cache processed images easily:
This ensures that you only process a given image once, and serve the cached version to all others.
It implicitly use the
FileStore to cache the image to the filesystem.
slot is a stream pointing to a cache bucket that the
FileStore has automatically created.
(Rest of the doc incoming!)
To implement a custom store, you have to inherit from the
This object provides two methods,
_lock that are respectively needed to fetch the resource from the cache
or to lock a new cache bucket. A cache bucket can be seen as the physical place where your cached resource will be
stored. It can be a file, a memory chunk, a REDIS key, a S3 bucket, or whatever you want.