SaaS (Software as a Service) or “on-demand software” has become a common delivery model for many bussiness software applications nowaday. It means when customers register the service, they get the software right-away.
In case customer want an isolated software (means other customers can’t read and write their data), then the multi-tenant architecture is your right choice !
We have many ways to build a multi-tenant system, but there are 3 common strategies:
- Shared database, shared schemas
- Shared database, seperated schemas
- Separated database
Every strategy has pros and cons and nothing in software is silver bullet. So pick the strategy fit to your requirements.
But today, I will write about my chosen strategy (Separated database).
The most important things you have to remember is what being shared and separated between different tenants:
- Load balancer
- Key-Value storages
- Application tenant code
- Metadata (about tenant info)
- Environment variables
- File storages
- Subscription Plans
- Queues (job queues)
To be continued …
- Cover photo from hackernoon