Not really at small scale, but if you&#x27;re building a large service there are several advantages.<p>For one thing, not having to copy response data between processes improves throughput. Since Varnish is so resistant to supporting SSL natively, you&#x27;ll always have to place something in front of it to use it with the modern web. Whether it&#x27;s haproxy, Apache or nginx, that&#x27;s just one more thing to deal with.<p>I have some other beefs with Varnish, but the most annoying one is the absence of a persistent disk cache. If the Varnish process dies, there goes your disk cache. Even though cache data is written out to disk, Varnish punted on saving an index and re-using an old process&#x27;s cache, so it writes the cache to an unlinked file.<p>Imagine a bad code push or new traffic pattern that causes core dumps across your entire service footprint -- and now it isn&#x27;t just a problem of getting the process back up and stable, you have also lost hundreds of terabytes of cache data. Or something as simple as rolling out a new version. You can architect around the problem, but why should you even have to?<p>ATS also (recently) supports Lua for plugins, which is way more powerful than VCL. It is a finicky piece of software though, and there are a lot more sharp edges that you&#x27;re likely to cut yourself on during the initial honeymoon period versus Varnish.