2. www.techcello.com
TO BE or NOT TO BE – Isolated?
One common question raised while dealing with any SaaS architecture is whether there
needs to be an isolated database for every customer or should there be a shared database /
shared table for all customers.
Tenant A
Tenant B
Tenant C
Multi-Tenant
Database
Tenant A
Tenant B
Tenant C
3. www.techcello.com
Decision Parameters
To take a decision you should ask the following questions,
• Will my customers be willing to share the data with other customers
or is it a big no?
• Do my customers demand access to the database?
• Will my customers need the option to individually backup and restore
the data at any point in time?
• Is the data volume high for all customers?
• Will the workload from all my customers be high and at the same
time(concurrency)?
4. You might not have an option but to provide
those customers an isolated database.
www.techcello.com
Inferences
• Will my customers be willing to share the data with other customers
or is it a big no?
5. You might need to go for an isolated database.
Having said that please note that it is a very bad practice
and a big blunder to open up the data environment to the
customer and it is wise to stay away from it.
Usually customers would need data access to backup the
data regularly and sync to their on-premise environment or
when they need to create their custom reports.
A better way to handle this would be to provide data
export files and APIs through which they can sync the data
with the on-premise data and as for the custom reports
have a custom report builder capability within the product
itself.
www.techcello.com
Inferences
• Do my customers demand access to the database?
6. While it is easy to achieve this in a isolated
database, you can still achieve this in a shared
table by building an utility.
www.techcello.com
Inferences
• Will my customers need the option to individually backup and restore
the data at any point in time?
7. You might have to do a capacity planning using workload
and storage for your customers and see if combining
customers data makes sense from a performance
perspective.
In a shared table scenario you typically shard the data based
on tenant. If you end up with one shard for each customer
then going for a shared table makes no sense.
A shared table scenario makes much sense from a
performance perspective only for the following scenarios,
• When you have many customer with lesser or
medium volume of data
• When the workload of the customer is spread at
different times
• When the data volume and workload pattern is
different between different customerswww.techcello.com
Inferences
• Is the data volume high for all customers?
• Will the workload from all my customers be high and at the same
time(concurrency)?
8. www.techcello.com
Ideal Option In SaaS
Go for a hybrid model where you completely design for a shared table
approach
Expect mixed set of customers with different preferences
Designing for Sharding by Tenants will allow you to achieve hybrid
support
Have an option to isolate specific customers on a need basis
9. www.techcello.com
About TechCello
Techcello is a cloud-ready, SaaS Application
Development Framework
Can be used to,
Build new SaaS products
Convert single-tenant Apps to Multi-Tenant
Migrate on premise products to SaaS model
Cello framework is delivered as a set of libraries and
APIs that can be easily integrated to your product
Applications built using Cello can be deployed in
any cloud
Cello contains building blocks for developing,
monetizing and servicing your SaaS offering.
10. www.techcello.com
TechCello – Flexible Architecture
TechCello supports all models of database multi-tenancy, there by allowing ISVs
to operate in a hybrid model.
TechCello offers an end to end SaaS Life Cycle Management Solution that can
help in designing, developing and managing the operations of your SaaS
product.
Using TechCello you can simply focus on building your product functionalities,
and TechCello can take care of the rest.
TechCello is tested and proven SaaS Framework, built exclusively to meet the
typical SaaS needs of your business and product.
TechCello offers more than 30+ modules covering all the basic engineering
blocks and operational modules.
Apart from saving significant amount of cost, your precious time can be well
spent on differentiating your product from competitors through unique product
features.