How do I scale my SaaS subscriptions

Tenant models for SaaS applications

  • 3 minutes to read

In a SaaS (Software-as-a-Service) model, each of your customers is a client of your application. Each tenant pays a subscription fee to access the SaaS application. This article describes the application tenant models that are available when building SaaS applications.

When designing a SaaS application, you choose an application tenant model that best suits the needs of your customers and your business. In general, the application tenant model does not affect the functionality of an application. However, this is likely to affect other aspects of the overall solution, including scaling, tenant isolation, cost per tenant, and operational complexity.

What are application tenant models?

The following sections explain concepts of the single-tenant application model and the mixed and multi-tenant application models.

Single client

In the single tenant model, a dedicated instance of the application is provided for each customer. For example, in an application with an n-tier architecture, all customers receive a new, dedicated instance of the web, middle, and data tier. These layers are not shared by customers.

Mixed tenant model

In this model, one or more parts of an application are dedicated to each customer, while the remaining parts are shared by all customers. For example, in an application with an n-tier architecture, the web tier and middle tier are shared by all customers. However, each customer is provided with a dedicated data tier and database.

Multi-tenant

In this model, a single instance of the application is deployed to and shared by all customers. In an n-tier architecture application, the web, middle, and data tiers are shared by all customers.

A combination of these models can also be provided for customers with other requirements. For example, the basic tariff of your service could run in a multi-tenant instance of the application. This means your customers can access an entry-level version of your app at a lower cost, but receive lower performance or limited functionality. In addition to this basic version, a dedicated service level could be implemented in a single tenant model. This allows you to offer an isolated instance of your application at a higher cost to customers who need higher performance or additional functionality.

Comparison of the application tenant models

The tenant model usually does not affect how an application works, but it is very likely to affect other aspects of the overall solution. The following table summarizes the differences between the application tenant models:

MeasurementSingle tenantMixedMulti-tenant
ScalingmediumHighVery high
Tenant isolationVery highHighLow
Cost per clientHighmediumLow
Complexity of operationLow to high: individually simple, but complex on a grand scaleLow to medium: Consider complexity on a grand scaleLow to high: Managing individual clients is complex

In the following, the terms used for measurement are described:

Scaling : The number of concurrent customers (or tenants) your application can be used by.

Tenant isolation: The degree of separation of customer data and performance from other customers.

Costs per client: The relative cost of running a tenant for a single customer.

Complexity of operation: How complex is it to perform operational tasks such as automation, security, monitoring, maintenance, metering, application provisioning, disaster recovery / BCP?

In general, the single tenant application model is easier to manage with a small number of tenants. With a large number of clients, however, it can quickly become complex if there are no strict guidelines for optimal operation. In contrast, in the multi-tenant application model, it is easier to manage the system as a whole. However, if you want to manage a single customer client independently, it quickly becomes very complex, unless there are strict guidelines for optimal operation.

Further considerations

Now that you understand customer needs and business goals, ask yourself the following questions:

  • Am I working in a highly regulated industry where each customer's data needs to be isolated from one another?
  • Do I want to quickly scale my application to many thousands of clients?
  • Are the costs of running the individual tenant / customer instances important?

The answers to these questions will help you refine your tenant needs.

Next Steps

For more information about tenant patterns for applications, see Tenant Patterns for Multi-Tenant SaaS Databases.