During one of the architecture review sessions we were doing there was a confusion over the data being cached and how exactly is it designed for the system.
So in order to ensure that we have all the information we need here are the 4 golden questions one must ask for each data source which is being cached
1) What is the Data Source
2) How often does the Data Source Change
3) How updated does the Cache need to be
4) How hard is it to refresh.
If one can document the answers for these questions for each data source then its pretty easy to figure out the right strategy for caching.
Hope this helps if you are designing an application where caching is needed :)