Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
-
web-benchmarks
A set of HTTP server benchmarks for Golang, node.js and Python with proper CPU utilization and database connection pooling.
It sounds like /u/detroitsongbird is talking about the LMAX Disruptor - but note while it was considered pretty groundbreaking when it came out, that was over 10 years ago. I wouldn't be so sure that the constraints it forces on the user are still worth the gains, given that the JRE has advanced a lot in the meantime.
As you are in i/o tasks, you can look at spring webflux / microprofile / quarkus. If you mature enough netty (https://netty.io/) based solution will be more effecient.
Java is definitely good. It’s what my employer uses for that exact purpose. This might help you. https://www.techempower.com/benchmarks/
I was about to suggest Chronicle, but it looks like they have gone closed-source. The older version is still interesting to look through though. Aeron / Disruptor / SBE are good projects for inspiration as well.
I was about to suggest Chronicle, but it looks like they have gone closed-source. The older version is still interesting to look through though. Aeron / Disruptor / SBE are good projects for inspiration as well.
I was about to suggest Chronicle, but it looks like they have gone closed-source. The older version is still interesting to look through though. Aeron / Disruptor / SBE are good projects for inspiration as well.
I tried a few load testing tools but really liked https://github.com/tsenart/vegeta. You can start by trying it on your Python and Node servers just to get familiar with the process of identifying and dealing with performance bottlenecks. If you're lucky this alone will be enough to solve your problem and you won't have to introduce another language into your technology stack.
If your team is familiar with Node, you can use it to write high performance servers that perform at almost the same level as Go or Java: https://github.com/nDmitry/web-benchmarks. It’d probably be worth learning how to benchmark and profile your current services too. It will require choosing your libraries carefully for high performance and being thoughtful about loops and allocations, but you would need to do that with Go and Java too.