Of course there is no universal answer here, it will totally depend on the specifics of your application, but I’d still like to tackle that question in greater length at some point. For now though, I wanted to quickly give some pointers to what I’ve already written on this. Here is some decent guidance on caching in the PAG, see Chapter 3, under “Caching” and again in Chapter 4.
I could also do a general discussion in a blog to walk through some choices though to augment this information somewhat.
If there is feedback as to what direction you might like an expanded article to take feel free to put that here. There’s plenty of meat on this topic.