Software as a Service (SaaS) is a term used to refer to a piece of software that only needs a browser to run and serves both B2B and B2C market categories. It is easy to deduce that SaaS must run on a cloud-based infrastructure that abstracts its execution and state persistence behind the scenes. This ensures that clients do not need to download and install any dedicated software to run it.
Think of the times before we had cloud-based infrastructures and SaaS – the software was physically shipped to customers on a CD-ROM or a DVD to be deployed on-premises. More often than not, the product company did not have to worry about privacy-related aspects since it was understood that the customer would manage it.
A multi-tenant approach is a design philosophy that is used to build software applications that can be shared with multiple B2B customers. Some popular examples of multi-tenant platforms that we use almost every day include:
- Conferencing tools such as Zoom, etc.
- Salesforce CRM
In this article, we will explore some data sharing challenges in multi-tenant software implementation.
Data sharing between tenants:
To understand this better, consider hospital management software as an example. This software is used across the hospital by staff, patients, and technicians for diagnosis and healthcare-related functions. When designing a multi-tenant hospital management system, the traditional and least expensive solution is to persist data in a single database. But let us assume Abbott Northwestern Hospital and Aspen Valley Hospital are procuring hospital management software. They may not prefer to use software where the data is shared with another hospital’s database. This simplified ecosystem may have challenges in data privacy and performance. Hence there is a need to explore better alternatives to build multi-tenant software.
Since PII (Personally Identifiable Information) is not allowed to be shared outside the doctor-patient ecosystem, multiple hospitals using the same SaaS platform run the risk of data overlap. This is a privacy issue, and the risk is greater when there are multiple tenants on the same platform.
When multiple tenants access the same databases continuously, there is a considerable strain on the performance of the platform, resulting from an exponential increase in the database size.
How to effectively handle data in a multi-tenant software
The intent of this section is to describe most of the configurations that can be used for providing data isolation with both Monolith and Microservice Architecture (MSA).
As you can see, there are several strategies available for implementing multi-tenancy. However, the preferred solution will depend on cost, privacy, security, and legal compliance, in addition to the technical comparisons covered above.