rtomayko / rack-cache

Real HTTP Caching for Ruby Web Apps

This URL has Read+Write access

rtomayko (author)
Sat Jun 06 02:04:44 -0700 2009
commit  12b0de7eaa4801c97a57e6fb3c4bcf2d84056f64
tree    4c27052373f4d84e265be409be3159c937c9f396
parent  05d23360c3e08ccb2bc5af5fae060c34cfceeeb2
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.