This has been asked several times before and in several variations but I wanted to ask again as a lot of the other topics are either fairly old or the information is spread across questions / topics.
I’m creating a SaaS system. There are 3 parts to the system:
- The landing page
- The dashboard
- The customer facing part of the application
I am not overly concerned about the landing page, nor the dashboard (for the most part). There is one page in the dashboard that will be used a lot, but this is mainly waiting for reactive DB updates when orders are made on the customer facing part of the app.
My concern is around concurrent users on the customer facing part of the app. I’m not sure what to expect with performance. I understand that various factors can affect performance and certain practises can improve performance but I wanted some advice on some benchmark figures that other people have experienced with their Meteor applications?
I am of course not expecting the software to be an overnight success (nor am I expecting it to be a success anyway - I’m trying to be realistic). I currently plan to launch the site on a VPS machine(s) on something like DigitalOcean or Linode. I suspect I will pay for one of the cheaper $5-20 tiers initially and go from there.
I am undecided on whether to run the database on the same VPS, on a different VPS or on a managed MongoDB database. Managed MongoDB servers are pretty expensive from what I can see (unless someone can recommend a more reasonably priced one?)
Or, should I just spin up a single VPS for each customer and host the application and database on the same server for each person (presumably the low ~$5 tier would be fine for this?) However, that also then brings up the question of how to manage the temporary free tier that users will have access to. Alternatively, is it better to have separate servers for the application and one for the database? Or vice versa?
Is performance / concurrent user performance based on the application web server or the database server?
Any advice on any of the questions I have would be really appreciated. Sorry for the fairly long post. As you can see, I currently have a lot of questions and a lot of decisions to make before trying to launch.
Happy to provide more context if it is needed.