fasthttp icon indicating copy to clipboard operation
fasthttp copied to clipboard

Who uses fasthttp?

Open hsblhsn opened this issue 4 years ago • 13 comments

Is there any production servers that's powered by fasthttp?

hsblhsn avatar Apr 09 '20 15:04 hsblhsn

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.

erikdubbelboer avatar Apr 09 '20 15:04 erikdubbelboer

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.

phuslu avatar Apr 10 '20 02:04 phuslu

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

james-d-elliott avatar Apr 10 '20 03:04 james-d-elliott

we use it for our Chat API (https://getstream.io/) and soon we'll do the same for feeds as well

tbarbugli avatar Apr 10 '20 07:04 tbarbugli

I am :) :v:

vinhjaxt avatar Apr 11 '20 10:04 vinhjaxt

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.

iapyeh avatar Apr 11 '20 13:04 iapyeh

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, and fasthttp 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 :)

kirillDanshin avatar Apr 18 '20 23:04 kirillDanshin

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.

mmacdermaid avatar Apr 28 '20 22:04 mmacdermaid

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.

rpadovani avatar May 26 '20 07:05 rpadovani

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.

gitmko0 avatar Jun 28 '20 07:06 gitmko0

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.

progamer71 avatar Jan 29 '21 15:01 progamer71

The famous fiber framework uses it https://github.com/gofiber/fiber

tdr2d avatar Feb 24 '21 20:02 tdr2d