I'm currently setting up my first big Drupal site that requires caching. The vast majority of the traffic is anonymous, so we can cache full pages. Currently, for a somewhat smaller site on D6, we use Boost, which works pretty well. The only other requirements are: ideally have relatively smart expiration of caches (as well as clearing cache on page updates, things like updating related views on node updates) and it definitely needs to work with Domain Access (shouldn't be a problem I don't think for most caching solutions?). Also, caching that can also works for logged in users would be a bonus, but unnecessary. (ie. it would be nice if things were quicker for admin users, but that's lower down the scale of things)
What's the easiest/safest/most foolproof/most common way to cache things on Drupal 7?
Drupal 7's native cache - stores it in the database? Would ideally want to avoid the database entirely. Boost - seems to have slowed down a lot on development for D7? Varnish - have never used but this seems the most common D7 way - anything to be aware of? If Varnish listens on port 80, and I also have non-Drupal pages on the same domain, how do you pass through things so people can access example.com/nondrupal/page? Do I need a reverse proxy or will Varnish pass it through itself? If starting from scratch, which version of Varnish should I use? Memcached - presumably am fine to use this alongside Varnish/Boost for logged in users. Do I just drop it in and use it for all systems (caching, sessions, locking)?