“There are only two hard things in Computer Science: cache invalidation and naming things.” —Phil Karlton

Over the past couple weeks I’ve been working on a Django app to do automated caching and invalidation. The basic usage follows like this:

Photo.objects.cache().filter(user=user, status=2)

Anything I would say here would mostly be a repeat of the documentation I wrote, so you should just check it out for yourself: http://github.com/dziegler/django-cachebot

Be sure read the caveats. We’re using this in production at mingle.com, but it’s an early stage project so it’s possible that there are edge cases that I’ve missed. That being said, since we’re using it in production, I will try to fix any bugs as soon as I can. If you’re familiar with Django internals or feeling adventurous, feel free to take a look at the source and send me some feedback on how it could be improved.

Also, as a followup to Phil Karlton’s second point, I was thinking of naming this Sir-Cache-a-Lot, but thought that would be too hard to import, so I went with django-cachebot.