Many people love caching. They used caching everywhere they could, even in situations such as only a few users used the system at any point of time. Somewhere down the line, there were numerous issues found out to be involved with caching. Some sample issues were application out of memory, users cannot log in, etc. I’ve seen all these problems. There were caching design defects in some of the systems I saw. Debugging was so difficult in such systems due to caching. You might wonder how a small system like this can have these issues?

Most of us, including myself, really don’t understand the caching. We just like it, think it is cool, and believe it will immediately increase performance even when we don’t have a performance issue.

I remembered I studied Operating System’s caching when I was at graduate school. I remembered we must control the size of caching, hit ratios, replace policy, and other algorithms, etc., and it was really tough even in the theoretical level.

Caching of something rarely changes, such as countries, states, etc., is fine. You really need to re-consider when designing caching of anything else. Do you really need it?