News for hackers. Stuff that matters.
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by rkallos on Friday May 24, 2019 @04:24PM (#20004957)
I work with Wael. Development is still ongoing. One implementation uses Golang, the other uses F# with a library that wraps libuv for faster network performance. Pony was used to write the stress-testing client for both implementations.
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by nullwasamistake on Friday May 24, 2019 @06:57PM (#20006014)
I mentioned this elsewhere in the thread, but since you'll see the reply here; look into Vert.X if you haven't already.

It already does most of what you want and has support for native epoll transport.

I'm not sure what led Vert.X to be discarded, maybe not a Java shop? But we've used it extremely successfully for high performance REST and I know of several high profile tech companies that swear by it.

There's nothing I know of that compares with Vert.X in performance, stability, and popular adoption

Re:5M Bid request/s, 2ms max response time – The Road to Dam... by rkallos on Friday May 24, 2019 @08:29PM (#20006392)
Thanks for the recommendation! However, there are a few reasons why Vert.X wasn't considered, the biggest ones being that we're not a Java shop and the service in this blog post isn't HTTP/REST.

While the bandwidth benchmarks are fun to see and write blog posts about, we also care a lot about keeping tail latency at or below 2ms than we do about getting more bandwidth at this point.

Re:5M Bid request/s, 2ms max response time – The Road to Dam... by nullwasamistake on Friday May 24, 2019 @08:52PM (#20006464)
Ah yes. The GC latency could be a problem. Java may still be viable with the new ZGC garbage collector. And Vert.X uses Netty underneath which is mostly protocol agnostic.

Still, those issues and not being a Java shop makes Vert.X/Netty likely a bad fit.

Thanks for replying with a well thought out response!

Re:5M Bid request/s, 2ms max response time – The Road to Dam... by dom96 on Saturday May 25, 2019 @06:32AM (#20008196)
Have you considered Nim? You can achieve some really high performance with it[1]. Since you've considered Rust, Go, C and even Pony, Nim should really be on your list.

1 - See httpbeast in the latest round of the Techempower benchmarks: https://www.techempower.com/benchmarks/#section=data-r17&hw=...

Re:5M Bid request/s, 2ms max response time – The Road to Dam... by BubRoss on Sunday May 26, 2019 @08:41AM (#20014618)
Does Nim's compiler still crash all the time?

Also why is evey immature native language considered, but the two speed demon languages without garbage collection - ISPC and C++ - are nowhere to be found?

Re:5M Bid request/s, 2ms max response time – The Road to Dam... by tybit on Friday May 24, 2019 @11:37PM (#20006959)
Was pony considered for the implementation itself? Other than the immature ecosystem it seems like a perfect fit here. Awesome write up and sounds like a fun job.
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by spooneybarger on Friday May 24, 2019 @05:50PM (#20005601)
I'm really glad I came here and found this comment. It squares so many circles for me. Thanks rkallos.
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by rkallos on Friday May 24, 2019 @05:52PM (#20005615)
Thanks for helping me answer all my questions about Pony! :)
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by spooneybarger on Friday May 24, 2019 @05:57PM (#20005643)
You're welcome.
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by deforciant on Friday May 24, 2019 @05:46PM (#20005570)
Do you use libuv on go side as well?
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by Thaxll on Friday May 24, 2019 @08:50PM (#20006458)
You don't want to use C lib in Go for performance reason.
Re:5M Bid request/s, 2ms max response time – The Road to Dam... by rkallos on Friday May 24, 2019 @05:59PM (#20005658)
Nope. The Go implementation uses net.Conn from the standard library.