How scalable is Meteor compared to other platforms?

Now with the advent of Galaxy, this may be a different game. Would you say Meteor now scales better than Rails? Python/Django? PHP? Where is relatively to other platforms from the scalability standpoint, for development of modern, reactive apps?

I understand this is a very imprecise question and the answer would be a function of many variables, but wanted to hear what other people think.

1 Like

For examples sake, how about we say you’re looking to build a social network an expect 100k+ users online at a time. General features: They share pictures and videos mostly and can instant message.

I’d be curious to hear the answers to this.

I think for the reactive parts of your app, it would be hard to do better than Meteor right now since there was a lot of effort poured in to the MongoDB livequery implementation. So this is very good for highly interactive apps with a lot of value per user - if I were building an app like this I would say Meteor is the top choice at the moment.

Then there are some tools you can use to avoid reactivity for the parts of your app that don’t need it, and they will scale exactly as well as any Node.js app (and Node is known for having good scaling properties).

I think if you are trying to build something that has very low revenue per user (like a news site, or some social networks), it might be worth thinking about optimizing the performance of your particular app, since Meteor apps with the default reactivity everywhere can be relatively expensive to operate per user.

6 Likes

I’ve seen this come up a few times in the last week, mostly in the context of what Apollo will give us over the current system. However, I thought you could already turn reactivity off on a query by query basis as an option to collection.find( )? Or am I missing something?

You can turn off the reactivity in the query so that your UI doesn’t rerender, but the data is still pushed to the client. It’s a matter of the server doing the work to push the data.

1 Like

So how do you disable that?

Well, it can be quite hard. I think there are a few publications that make subscriptions non-reactive, or you can fetch data via methods, or you can use REST. This is why we are keeping this in mind as a first-class feature for Apollo, because it can be quite hard to disable reactivity in Meteor today and keep the nice developer experience features.

2 Likes

Would be nice to have an example.

There are plenty of Meteor apps running at scale out there, and a lot of people have written blog posts about it. Check the Meteor YouTube channel for some talks of production apps with many users.

1 Like

These are the ones I remember being most interesting:



3 Likes

Very useful videos truly!!