Hi Alan, Thanks for reaching out on the Pedestal mailing list! Most web benchmarks care more about throughput and concurrent connection than latency, but sadly, nearly all benchmarks show these measurements as scalars instead of distributions. The "errors" number is the number of requests that resulted in a server error (because of overload/mishandling). A robust server that correctly understands back-pressure and can efficiently process requests on a queue should result in no errors, assuming that it can process the queued requests at the rate in which they're being received.
The "keepalive" flag refers to TCP keepalive, which will affect speed and connection timeout. While I'm not aware of any benchmark between Pedestal and Go, I would be highly skeptical of such a benchmark. Web benchmarks are often very misleading - they represent an application you'd never write, integrated into a server in a way you'd never do, just to get the highest overall number possible. I would instead encourage you to look for measurements related directly to the quality attributes you care about, for the specific pieces of your overall application. I'd also think about what you're really trying to optimize. With Clojure you get the power of Lisp - you get to use go-channels, property-based generative testing, pattern matching, logic programming - all as libraries. You can extend the language however you need, to build the most efficient system. Hell, you can even write directly to the LLVM <https://github.com/halgari/mjolnir> compiler to get bare-metal speed (again, just a library). You get the power and speed of interactive development, with the focus of small, composable, functional units (first class functions, immutable data structures, protocols). I recently needed to do very fast binary processing for a wire protocol, and I was able to utilize Netty within Clojure to do the entire thing off-heap (no GC impact), and with native byte handling - Clojure gives you immediate access to the powerful library ecosystem on the JVM. You can even connect your editor to a running system to inspect, debug, evolve, and patch it. While Golang's community is growing and great libraries are appearing in the ecosystem (Pedestal's router <https://github.com/pedestal/pedestal/pull/330> was heavily influenced by httprouter), the language and runtime aren't nearly as powerful as Clojure, for me. I have far greater flexibility and power with Clojure, and the opportunity to optimize my application and process where it matters most. We benchmark Pedestal against other web libraries with real production systems. In every benchmark we've done so far, Pedestal has come out on top. We also look at more than just runtime performance characteristics - we consider code size, system complexity, etc. Additionally Pedestal is secure by default - all of the best security practices are automatically enabled in Pedestal (you have to explicitly asked for them to be turned off). We're also only one of two Clojure web systems that is truly asynchronous. You can also take a look at Pedestal's other notable features <https://github.com/pedestal/pedestal#notable-capabilities>. Hope this helps! Reach out with any other questions you may have. Regards, Paul -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.