Largescale Meteor App/s?

In my company I’ve got a new challenge: build a whole management system with some “modules”. It will include CRM, ERP, analytics, kanban like task management, marketing management (mailings, newsletter…), blog, wiki, digital sign, calendar, chatbot among a lot of other stuff (like moving a lot of images).

This will be worldwide (starting in my country of course) and will have a lot of different customers from the sector with differents “packages” or “modules” hired or subscribed from us. Can Meteor handle all of this? I only have experience in offering and developing a single product and still don’t know if the technology can handle this amount of users. (I guess this is something like a SaaS). Should I use GraphQL and have Couchbase or stick with MongoDB?

Any answer will be usefull!

Pretty good presentation:

The approach Qualia uses where each customer gets their own Meteor instance makes scaling very simple.

3 Likes

I’m exactly in that area. Here’s my approach when using Meteor.

Meteor excels in being a realtime web platform, but be aware about what its not
Meteor by default is quite monolythic. Meaning it provides all libraries, internal api’s etc out of the box, but as part of 1 application sitting on 1 server. You will notice that when the code-base grows, there will be lot of dependencies. That is the price of all the features and optimizations that meteor gives you. Features that I find very valuable and the kind of features that a developer wants but never gets granted time to do.

Meteor in a microservice ecosystem
If you deal with a lot of background services and rest API’s it might be better to go for Apollo. However, I prefer a different approach. Treat mongo as a projection database, glorified cache or whatever you want to call it and here’s why:

One of Meteor’s prime features is latency compensation. This means that a client doesn’t have to wait when its applying an update to the database. I’m utilizing the Meteor methods to send ‘commands’ which I store. Commands like “startJob”, “registerUser” etc. etc. I would then send back a ‘success’ response telling the user everything is fine. In parallel (Meteor.defer) I use a message broker to send a message accross the cloud to any consumers. Those consumers handle any business logic like processing jobs, calling api’s, sending emails etc etc etc. Whenever these applications are finished an event is triggered “userRegistered”, “jobFinished”, “articlePublished”. That event would be stored and again be published using a message broker.

Meteor on its turn listens for any events that should be projected into the projection database (Mongo) and publishes this data to the client.

This concept is actually 2 concepts: CQRS and Event Sourcing. Have a read here:

Meteor is in the ideal position to be the Read and command side of a bigger application that needs to scale. I would not use Meteor for everything but it really shines on this area when you go big.

2 Likes

I just saw this video and I’ve got some nice ideas to work with! I didn’t know about Rancher or Concourse…totally gonna use it! Thanks mate!

Thanks! Actually it helped a lot!

So far the scalibility is totally there. Want to see an MMO done in Meteor? www.StarCommanderOnline.com

It’s getting pretty complex… I’m writing in modules, and doing things “my way”.

Search my post history for OpLog stuff if you want to see the performance data I gathered.

Host with Meteor Galaxy, don’t be stupid like me…

Welcome to Meteor!

1 Like

Actually I’m working on AWS…I guess its more DIY than Galaxy ^^"

Awesome project dude! I’ll check it out!

I hear you. Because I’m doing an MMO, I need a super baddass CPU. Actually, in hindsight, my app was NOT optimized. Not even close.

So when I Uploaded to Galaxy, I burnt it out. Galaxy is also expensive compared to DIY - but their service is ABSOLUTELY worth it. Now they have Kadira, and I have to look at switching back at some point.

I moved to Google Cloud Compute because they gave me $300 bucks credit for hosting! Can you believe that?!

I was thinking in using Galaxy, but I am in the same situation as you, I’ve got AWS credits (like $5000 or so) given to my company from an accelerator company (Plug&Play). But, if they provide a good support I will change when I’ve got enough to pay it haha

If you want a fast and easy to use service. Galaxy. They’re pricey though. They add about 2x multiplier to what your AWS would cost.

Essentially they’re renting AWS, adding a service, and charging for it. It’s fine though, they have a really great platform.

Their customer service… Not so good. But neither is AWS.

I’m on Cloud Compute, and had to spend a lot of time building my own deployment script. It’s really not too bad. Upload, unzip, install nodeJS, open some ports redirecting to 80 to 3000, install some node modules, install forever, run forever index and we’re live.

I think the biggest advantage to Galaxy is Kadira DB monitoring. I got in the last few days of it’s free version, and it helped me understand database interactions a lot better. My app would be toast with out it. I’m building an MMO and ‘data matters’.

Feel free to ask more questions, I check in once a day.