In a multi tenant software solution, several different customers or their users use the same software instance. They are always separated from each other and do not perceive any other client on the shared system.
This means that the clients can never access each other’s data. For this reason, the separation, isolation, and security of the data must be designed during the design of the data model to make a software solution multi-client capable.
For a corporate group, multi tenant accounting software has the special advantage of storing the data of each subsidiary in separate databases. Multi tenancy has also been the standard for many years in the use of ERP and CMS systems.
If each customer is provided with its own system instance, then this is referred to as a single tenancy architecture. These are usually deployed on virtual environments.
With multi tenancy architectures, a virtualized environment is not practical because the software already contains the separation of the clients. This saves the resource overhead that virtualized environments inevitably bring.
Another advantage of multi tenancy is the ability to define all data and objects as client-specific or cross-client. For example, general-purpose data such as postal codes, city and country names are accessible to all users across clients and only need to be maintained in one place. The database can be integrated into the application in three different ways. Either all clients use a common database with a common database schema, or separate schemas or even separate databases are used.
A dedicated database per client provides the maximum flexibility and strongest isolation of data, but also requires the highest effort in maintaining, scaling, and managing the system.
A shared database with separate schemas is useful when a few data fields need to be customized or added, but the application can access the predefined data fields for the most part. Ideally, all clients will use the same database and schema, resulting in the least maintenance and ongoing operational overhead. In addition to efficient use of hardware resources, this variant is also the easiest to scale.
With all the advantages, however, it must also be mentioned that the simultaneous use of the application by many users and clients means that no performance guarantee is possible.
While there are a few ways to balance the workload somewhat, these are not comparable to the performance allocation in a virtual environment. Backup and recovery of data is also very complex in a multi-tenancy solution, as the data is not as isolated from each other as in a multi-instance architecture, and recovery requires additional effort. Additionally, erroneous or failed updates affect all tenants in the system simultaneously.
The more common option for current SaaS solutions is multi tenancy, as the efficient use of resources and low maintenance costs offer a decisive price advantage over single tenancy. Only if absolute flexibility and control are required, a single tenant infrastructure usually is the better choice.