Multi-Tenancy: One database per tenant

We have a SaaS MVP that will be deployed soon and we already have big clients (tenants) lined up that we needed to figure out how to scale our database automagically.

Due to the nature of our app being heavy on data, each client would need to have “limitations” on the data that they want to retain, like a hard limit of 1GB per client. If they wanted to retain more data, they would just have to pay additional fee and we would just upgrade the storage on our database hosting. With this setup, we were thinking if the following is possible:

  • 1 database for the whole application with all the common documents (users, configs, reports etc…)
  • 1 database for each tenant’s (client) project where the storage is being monitored

We this setup, we would just need to upgrade the database of 1 tenant (which they will pay for on behalf of us) if they wish to have more storage without the need to upgrade the whole app’s storage.

Is this possible? If yes, what would it look like in Atlas?