In this post, we discuss the two approaches to software architecture: multi-instance approach and multi-tenant approach.
The term software multitenancy refers to a software architecture in which a single instance of the software runs on a server and serves multiple tenants. Systems designed in such manner are often called shared (in contrast to dedicated or isolated). A tenant is a group of users who share a common access with specific privileges to the software instance.
With a multi-tenant architecture, a software application is designed to provide every tenant a dedicated share of the instance – including its data, configuration, user management, tenant individual functionality. Multi-tenancy contrasts with the multi-instance architectures, where separate software instances operate on behalf of different tenants.
Let’s list the pros and cons of both approaches!
Pros
Cons
Pros
Cons
So it seems that the multi-tenant approach (using shared instance) makes better use of the available resources and it is more cost-effective. This should be the go-to approach if the database storage becomes a bottleneck.
However, the multi-instance approach (using dedicated instances) helps to make sure that the CPU/Database intensive requests by one client do not impact the application usage of the other client.
Your pick now!