cache-handler icon indicating copy to clipboard operation
cache-handler copied to clipboard

Design/spec discussion

Open mholt opened this issue 5 years ago • 8 comments

Currently, this handler works in the most basic sense, but it has a lot of potential and needs some TLC before being truly production-ready. Right now, it's a great foundation to build from.

Since this module was recently spliced out of Caddy's standard modules before the RC1 tag, previous discussions can be found here:

  • https://github.com/caddyserver/caddy/issues/10
  • https://github.com/caddyserver/caddy/issues/1489
  • https://github.com/caddyserver/caddy/pull/1759
  • https://github.com/caddyserver/caddy/issues/2820

Plus the third-party v1 implementation of a cache middleware: https://github.com/nicolasazrak/caddy-cache

With the context from those previous discussions in mind, where should we take this project? Who will take the lead in developing it?

mholt avatar Apr 01 '20 22:04 mholt

Hi, recently, I hack and migrate https://github.com/nicolasazrak/caddy-cache to be consistent with caddy 2 architecture and make it supports in-memory backend.

Here is the repo: https://github.com/sillygod/cdp-cache. Actually, I am not familiar with the mechanism of cache-control (there are so many RFC about it) and not totally understand the structure of caddy2. I have just touched caddy2 and https://github.com/nicolasazrak/caddy-cache for one week and more. Therefore, the code of my repo may be a little messy and not use caddy2's APIs so precisely.

Just to clarify, I just want to share my result and I hope this repo can give other people some inspiration or someone can give me any advice to help the cache function more stable and production-ready.

Finally, thank for the awesome work of caddy2 and nicolasazrak's https://github.com/nicolasazrak/caddy-cache

sillygod avatar May 11 '20 03:05 sillygod

Cool. It would probably be best if we have just one cache handler for v2 rather than multiple, unless they do very different things / have very different approaches that would benefit different users.

But I'm thinking it's quite possible to have just one and satisfy most use cases.

Any interest in combining the two? This cache handler is a distributed cache which is important for a lot of customers I've talked to: they have too much to cache to fit in memory on one machine, and they have a cluster of Caddy instances deployed, so the distributed cache is essential: it just needs some finishing.

mholt avatar May 11 '20 14:05 mholt

I agree with you on this point. I would like to combine these two repos. However, I am working on my repo to support my company's requirements so It will be changed frequently (ex. the architecture, features, and more). That means it not stable now.

The advantage to keep working on my repo is I can totally control it :) Maybe it's not a good timing to merge them. :(

sillygod avatar May 12 '20 03:05 sillygod

@abiosoft If you're interested in working on this repo, consider checking @sillygod's implementation for ideas and real business requirements - might be helpful.

mholt avatar May 14 '20 22:05 mholt

Hi, I'm new to Caddy, and I really love the idea of a cache module build in, and just wanted to give you guys some 👏 Hopefully someone will take lead, and get this project running 💪

urlund avatar Dec 02 '20 20:12 urlund

@urlund just in case it wasn't clear, this module is functional, just not feature complete. You can use it right now! See link to an example in the README: https://github.com/caddyserver/cache-handler#example-configuration

francislavoie avatar Dec 02 '20 21:12 francislavoie

@francislavoie I see, may I suggest that you prioritize a "purge" feature then? :)

urlund avatar Dec 03 '20 08:12 urlund