Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
tag: 0.4.0
Fetching contributors…

Cannot retrieve contributors at this time

32 lines (30 sloc) 1.649 kb
## Backlog
- Move breakers.rb configuration file into rack-contrib as a middleware
- Sample apps: Rack, Rails, Sinatra, Merb, etc.
- Use Bacon instead of test/spec
- Work with both memcache and memcached gems (memcached hasn't built on MacOS
for some time now).
- Fast path pass processing. We do a lot more than necessary just to determine
that the response should be passed through untouched.
- Don't purge/remove cache entries when invalidating. The entries should be
marked as stale and be forced revalidated on the next request instead of
being removed entirely.
- Add missing Expires header if we have a max-age.
- Purge/invalidate everything
- Invalidate at the URI of the Location or Content-Location response header
on POST, PUT, or DELETE that results in a redirect.
- Maximum size of cached entity
- Last-Modified factor: requests that have a Last-Modified header but no Expires
header have a TTL assigned based on the last modified age of the response:
TTL = (Age * Factor), or, 1h = (10h * 0.1)
- Run under multiple-threads with an option to lock before making requests
to the backend. The idea is to be able to serve requests from cache in
separate threads. This should probably be implemented as a separate
middleware component.
- Consider implementing ESI ( This should
probably be implemented as a separate middleware component.
- Sqlite3 (meta store)
- stale-while-revalidate
- Serve cached copies when down (see: stale-if-error) - e.g., database
connection drops and the cache takes over what it can.
Jump to Line
Something went wrong with that request. Please try again.