Scaling the traffic is not the issue. Scaling the team and the product feature release rate is the primary driver.
HN user
mranney
Engineering. Always trying to be better.
The Netflix stack has a lot of assumptions about Java, and most of Uber is written in languages other than Java.
Our number is closer to 1,700 now, but yes this means 1,700 distinct applications. Each application has many instances, some have thousands of instances.
Uber runs a lot of databases in production. We stopped using Postgres a while ago for new applications that talk SQL, and this article explains some of the reasoning.
We still have many applications that talk directly to MySQL, and we still have our original API monolith that talks directly to Postgres.
All new applications are being built using distributed databases like our in-house Schemaless system which happens to be backed by MySQL, and we also have Riak and Cassandra in production.
Note that this message is almost a year old now. The issue has been addressed by the node and V8 teams.
We had built an event-based server in raw Python using epoll. It was fine, and Python is a great language. In my testing with a very early version of node, I found that node was between 4 and 10 times faster than Python.