fasthttp
fasthttp copied to clipboard
Who uses fasthttp?
Is there any production servers that's powered by fasthttp?
At my previous company we used fasthttp to handle 30k requests per second in production. At my current company we have a service using fasthttp that does on average 6k requests per second in production.
But I'm sure there are much bigger users out there.
We have a big service (up to 50 edge servers) which use fasthttp as frontend, the peak of total QPS reach 500K every day.
We are comforted with fasthttp worker pool mode and the []byte & append
style APIs.
I'm a member of the Authelia open source project and it's the http implementation we're using. May not be what you're specifically asking but it may help either way:
https://github.com/authelia/authelia
we use it for our Chat API (https://getstream.io/) and soon we'll do the same for feeds as well
I am :) :v:
I use the fasthttp in two intranet projects (1) an analysis platform of big data in Academia Sinica, Taiwan. (2) an AI system of voice-to-text for the language of Taiwanese. A new project about anti-fake-news is going to be the 3rd.
fasthttp is used by at least one of the largest media corporations in the world. They use it for some critical services. it's frequently being used in RTB platforms, HFT and other performance-critical tasks. in my previous companies, if we're looking at integrations made before me, I saw fasthttp used for one of four reasons:
- the service has some limits to a response time, and
net/http
just wouldn't do under given load - the service has so high RPS requirements, that using
net/http
would require hundreds of servers - the service has high concurrency, high RPS, 1e-10% max error rate due to the SLA, and a low max response time requirements, with <$3k / day budget for peak load. in this particular case,
net/http
was over budget with higher error rate, andfasthttp
was under <$1.2k/day for peak load. - developers got used to use fasthttp, and started to use fasthttp everywhere to save some time
I saw couple of cases, when a project wanted to integrate fasthttp, but decided to go for net/http. I'm working on addressing those, but here's the list:
- service is supposed to call 3rd-party API multiple times per request. that API has higher error rate when using HTTP/1.1 over tls, compared to HTTP2. they used fasthttp for the server, but had to use net/http for http2 client. under load, they had issues due to high goroutine count per client request, and they had high latency spikes from AWS ALB perspective, but as soon as I forked and changed x/net/http2 client to spin up less goroutines, we got acceptable latency spikes. currently I'm waiting for results from several corporate users, which currently are testing fasthttp2.
- service is supposed to receive an http body which is bigger than available ram on the server. net/http was used for the server. I have a working implementation to support those cases, but I have to clean that up, when I get some spare time.
hope it gave you an idea about fasthttp use cases :)
it's frequently being used in RTB platforms
Can confirm. My service handles a lot of QPS with limited resources. The net http handler absolutely crumbles under the same load. It's not even close.
I am using fasthttp in front/back and also using things like fastjson, bytebuffers etc.
I've been using fasthttp for years now.
We use for an internal proxy that hasn't many requests (~ 10M/day) but has crazy time constraints. The fact that fasthttp allocates very few resources, and the fact we are able to use the client pool to invoke the server behind the proxy means the request stays in the proxy code far less than 1ms.
switched from net/http to fasthttp, from gc spike of 100% to ~35% max after conversion. able to handle around 10x more load (with some tweaks) and memory requirement is minimal. only "complaint"... no http2 / http3. other than that... it's great!! will wait for http3 to come out in 5 years.
I use fasthttp server library to built prototype of timestamping authority server (TSA server). it connect to hardware security module (HSM) via PKCS#11 to sign PDF documents. I also use fasthttp client library to build timestamping client as a load generator for my timestamping authority server.
The famous fiber framework uses it https://github.com/gofiber/fiber