Uh well, it wasn't "decades ago" but it was some old timey stuff. Yahoo used Apache 1.3 as recently as 2012. They also disabled Keep-Alive on Apache, and most properties would use the hardcoded default number of prefork processes (32). It wasn't the smartest setup.
Nevertheless, I don't think that nginx / Apache / Varnish / haproxy / etc. are able to handle similar concurrent connection levels as ATS without significantly impacting 95th percentile latency due to their core architectures.
Hey, nice seeing you here! Glad to see the project reach HN (finally). That indeed is a very good slide deck.
Some features that I preach are:
- good turnkey default values
- lua support
- config options galore (Bryan labels it a con, but if you want control it's perfect)
- good logging
- historically proven scalability on large smp, xxlarge memory, multi nic systems
Edit: forgot to add one more thing though maybe not worthy a bullet point. If possible, a preference for physical rather than virtual is where I've seen performance with ATS shine. That is one reason why you would want as much config control possible.
Nevertheless, I don't think that nginx / Apache / Varnish / haproxy / etc. are able to handle similar concurrent connection levels as ATS without significantly impacting 95th percentile latency due to their core architectures.