SaaS
How a SaaS keeps each customer's data separate
A SaaS platform keeps customer data separate with one of three AWS models. In silo, each customer has their own resources. In pool, customers share resources. In bridge, the two are combined. The model is chosen in the system design, before any code is written.
If you are thinking about a SaaS product, one of the first questions is how separate each customer's data will be kept. The answer affects cost and security, and it is hard to change later. This article explains the three AWS options with simple examples, so you can discuss them with your team.
What is a tenant?
A tenant is one customer of the SaaS product, together with their users and data. A company that uses your platform is one tenant, and its people see the product as if it were their own. In reality, the same software serves dozens or hundreds of tenants at the same time.
That is why tenant isolation matters so much. The AWS Well-Architected SaaS Lens calls it a foundational topic that every SaaS provider must deal with. It adds that a breach of this boundary, in any way, would be a serious and probably irreversible event for a SaaS business. A customer who sees another customer's data loses trust in a single moment.
What is the silo model?
In the silo model, each tenant has their own dedicated resources. AWS gives two examples: a completely independent set of infrastructure for each tenant, or a separate database for each one. When some or all of a tenant's resources are dedicated to them, that is silo.
Even then, AWS points out that identity, onboarding and operations stay shared by everyone. This is what sets a SaaS apart from a service where each customer runs their own copy of the product. The gain is strong separation, because the data sits in a different place. The cost is more work to run the system, because every change has to reach every set of resources.
What is the pool model?
In the pool model, tenants share the same resources. AWS calls it the most classic meaning of multi-tenancy: shared, scalable infrastructure that brings economies of scale, easier management and speed of change. The shared resources can be computing power, storage or message queues.
Here the separation does not come from the structure. It comes from the code, which has to filter by tenant in every query to the database. If a filter is missing from one screen, data from another customer can show up. That is why pool needs systematic checking, with tests that look for exactly this mistake.
What is the bridge model?
Bridge is the combination of the two. AWS notes that SaaS products are not always purely silo or pool, and that many systems are a mix. For example, one service of the system can be silo and another can be pool.
What leads to silo? AWS names the regulatory profile of the data and the "noisy neighbor" effect, where one tenant with a heavy load slows down the others. What leads to pool? Flexibility, the way the system is accessed, and cost. In practice, data with higher requirements stays separate, while the other features share resources.
How do we choose a model for a project?
We choose based on the requirements of the project, not on a preference for a technology. In the first stage we write down three things: what data is stored, how many tenants are expected, and what your customers ask of you. With those, the comparison becomes simple.
Question | Leans toward silo | Leans toward pool |
|---|---|---|
How sensitive is the data? | Very sensitive or regulated | Ordinary business data |
How many tenants are expected? | Few, large ones | Many, small ones |
How much does the load differ per tenant? | A lot | A little |
How important is running cost? | Secondary | High |
The result is written into the system design that you approve. This way you know from the start what each option costs, and the discussion does not happen later, when the code already exists.
What did we choose in Praion AI?
In our own product, Praion AI, each customer has their own database. We describe it in detail in the Praion AI case study. It holds conversations, contacts and private notes, data that a customer wants to know belongs only to them. That is why the separation was built into the structure and not left to the attention of whoever writes the code.
The choice has a cost, and we accepted it knowingly: every update has to reach all the databases. In another project, with less sensitive data and many small customers, the same reasoning could lead to pool. This is the logic we follow, not one fixed recipe. The next question, which user inside each customer sees what, is explained in the article on roles and permissions. Together, the two decisions define who has access to which data.
Frequently asked questions: How a SaaS keeps each customer's data separate
Which model is the best?
None is best in every case. Silo gives stronger separation with more work to run the system. Pool gives savings and easier management, but it needs systematic checking of the code. The choice is made project by project.
Can the model be changed later?
It can, but it costs money. The change touches the database, the code and the way the platform is run. That is why the decision is written down and approved at the start, when changing it costs nothing.
Is a filter per tenant in every query enough?
The filter is necessary in pool, but having it in the code is not enough. You also need tests that check that every screen and every report show only the data of the right tenant. This mistake is hard to see with a small amount of test data.
How does this relate to user permissions?
They are two different levels. Tenant isolation decides which data belongs to which customer. Roles and permissions decide what each user can do inside their own account. We explain this in the article on roles and permissions in a SaaS.
Do you want us to design your platform?
If you are building a SaaS product or an internal platform for many customers, the data model is the first topic worth discussing. Describe your project in the project request and we will look at it together, at the requirements stage. See also the page on SaaS platforms.