I love Varnish. Mostly for ESI feature but also for Collapsed Forwarding feature which is enabled by default.

That "by-default" feature enhance the following scenario:

Only one request at a time will be allowed to populate a new cache element while other requests of the same cache element will either wait for a response to appear in the cache.

Most of my php stacks are driven by php-fpm via Nginx. I was bored installing Varnish each time, even when ESI was not required, so I searched for an alternative which seems to be implemented in Nginx to deliver the same feature.

Tadaaaaa!

#enable collapsed forwarding since 1.1.12
fastcgi_cache_lock on;

You can find more informations here

Enjoy