O
O
OlshevskyIO2015-11-08 15:10:20
Scala
OlshevskyIO, 2015-11-08 15:10:20

How to write a highly loaded api server?

Good time of the day! Attention, connoisseurs, the question is: "If you were faced with the task of writing a highly loaded api (for now, it just accepts data from PC clients and puts it in MongoDB), which technology would you choose?". I have a few options:

  • GoLang - captivates with its goroutines
  • Scala(Spray) - FP and Actors
  • NodeJS -- easy to work with MongoDB

But I would like to hear the opinion of people who have solved a similar problem .

Answer the question

In order to leave comments, you need to log in

13 answer(s)
P
Puma Thailand, 2015-11-08
@opium

Write what you can

S
sim3x, 2015-11-08
@sim3x

Write in php - so there will be fewer errors that will interfere more than the performance of the PL

U
uvelichitel, 2015-11-08
@uvelichitel

Authoritative benchmark .
In terms of personal preferences, now I write everything in Go, because I like it.))
Like is a serious factor, until the number of your PC clients is off scale, facebook was written in PHP.

R
Roman Mirilaczvili, 2015-11-08
@2ord

Before writing a highly loaded application, it is important to think over the architecture correctly, choose metrics for measuring performance. Maybe you need to choose another DBMS altogether, having thought through how best to access the data. The DBMS should also be selected based on what the emphasis is more on: read or write operations.
The language ecosystem chosen may be of secondary importance.

N
nirvimel, 2015-11-08
@nirvimel

Without questioning the credibility of the uvelichitel benchmark from techempower.com, I just want to remind you that this is a benchmark for frameworks . When the task is like this: "performance at any cost!", then all frameworks are better off moving aside and not getting in the way.
Just one example: these guys have achieved a processing speed of 2 microseconds per request-response, not even on bare metal, but under the JVM. All frameworks-champions of techempower-benchmark silently smoke on the sidelines.

M
mrFreezbe, 2015-11-12
@mrFreezbe

From experience.
I highly recommend Go and nodejs. Go is terrible as a language (subjectively, it's just disgusting for me to write in it),
nodejs - requires a lot of effort and care when writing an application so that it behaves stably.
In the end, for myself, I chose clojure.

V
Vitaly, 2015-11-08
@xytop

And you can pervert in C ++ if you wish (rutracker is almost completely written in it).
As a person who has solved a similar problem , I can say that they write in what they know better :)
And on Laravel and Sinatra and Golang and Flask.
Wise uncles keep high loads by horizontal scaling, not by changing the language :)

J
jaxel, 2015-11-08
@jaxel

For heavy workloads, the architecture is critical, not the language. Write on what you know best.

A
Alexander Taratin, 2015-11-08
@Taraflex

vibed.org

_
_ _, 2015-11-09
@AMar4enko

Elixir. Lots of fans. From Go I had a feeling as if I had gobbled up a lemon, but here everything is just great.
It seems like Erlang, but everything seems to be human.

Z
zoh, 2015-11-15
@zoh

but I don't recommend taking on Scala+Akka just for fun, if time is important.
I somehow did a load-critical project and worked it out for 1 month.

Z
ZOXEXIVO, 2016-07-18
@ZOXEXIVO

Choose .NET Core.
One of the most convenient languages ​​​​is C #, you carry runtime with you and it does not depend on anything.
The best IDE on the market with a free edition - Visual Studio
Go can be used when you need to write something that is basically impossible in .NET - create a lot of lightweight threads.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question