Sorry, I must be missing something in this blog post because the requirements here sound incredibly minimal. You just needed an HTTP service (sitting behind an Envoy proxy) to process a mere 500 requests/second (up to 1MB payload) and pipe them to Kinesis? How much data preparation is happening in Rust? It sounds like all the permission/rate-limiting/etc happens between Envoy/Redis before it ever reaches Rust?<p>I know this comes across as snarky but it really worries me that contemporary engineers think this is a feat worthy of a blog post. For example, take this book from 2003 [1] talking about Apache + mod_perl. Page 325 [2] shows a benchmark: "As you can see, the server was able to respond on average to 856 requests per second... and 10 milliseconds to process each request".<p>And just to show this isn't a NodeJS vs Rust thing, check out these webframework benchmarks using various JS frameworks [3]. The worst performer on there still does >500 rps while the best does 500,000.<p>It's 2020, the bar needs to be <i>much</i> higher.<p>[1] <a href="https://www.amazon.com/Practical-mod_perl-Stas-Bekman/dp/0596002270" rel="nofollow">https://www.amazon.com/Practical-mod_perl-Stas-Bekman/dp/059...</a><p>[2] <a href="https://books.google.com/books?id=i3Ww_7a2Ff4C&pg=PT356&lpg=PT356" rel="nofollow">https://books.google.com/books?id=i3Ww_7a2Ff4C&pg=PT356&lpg=...</a><p>[3] <a href="https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=db&l=zik0sf-1r" rel="nofollow">https://www.techempower.com/benchmarks/#section=data-r19&hw=...</a>