public
Description: Real HTTP Caching for Ruby Web Apps
Homepage: http://tomayko.com/src/rack-cache/
Clone URL: git://github.com/rtomayko/rack-cache.git
rack-cache / TODO
100644 28 lines (24 sloc) 1.26 kb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
## 0.5
 
  - Document allow_revalidate and allow_reload options.
  - Support multiple memcache servers.
  - Purge/invalidate everything
  - Explicit expiration/invalidation based on response headers or via an
    object interface passed in the rack env.
  - Sample apps: Rack, Rails, Sinatra, Merb, etc.
  - Move old breakers.rb configuration file into rack-contrib as a
    middleware component.
 
## Backlog
 
  - Use Bacon instead of test/spec
  - Fast path pass processing. We do a lot more than necessary just to determine
    that the response should be passed through untouched.
  - 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)
  - Consider implementing ESI (http://www.w3.org/TR/esi-lang). This should
    probably be implemented as a separate middleware component.
  - 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.