Scalability: Why so many servers needed?

Two recent articles have made me question the scalability of Meteor.

  1. In a blog post promoting Kadira Genie, Kadira outlined a use case where they reduced an app’s usage to 10 servers to handle 300 concurrent users.
  2. Another great article on scaling a Meteor app where someone has 8 servers handling a peak of 500 users at a time, and advice that a DigitalOcean droplet starts to choke at 100+ simultaneous users.

These requirements seem very high to me. I can’t imagine a large social network like Facebook operating at one server per 100 users. And when you compare to a solution like Firebase where you get unlimited connections to a real-time reactive database at only $49 a month, something seems very off about Meteor to me.

Is this typical of a Meteor app? How many users per server should one expect to scale? And if you can use less servers, what are the best ways to make your app leaner in order to do so? It feels like without special attention, it’s very easy to design your app in a slow, unscalable way by default.

1 Like

This is both true and okay. There are different data requirements for different apps. The app I mentioned is a app which has unique data requirements.

There are many places we could improve anyway in that app.

Yes. It’s not the highly efficient way to build an app with NodeJS, but it’s not the worst as well. If you are fetching and sending as the smallest possible data, then you can get some good results.

Firebase is a different story.

There are better apps apps which could handle more data usage. With one Digital Ocean box ($10), we could server ~500 active users. So, basically it’s with the way you write your app.