Unsolved
This post is more than 5 years old
2 Intern
•
265 Posts
0
876
February 23rd, 2015 08:00
Patterns of Multi-Tenant SaaS Applications
Multi-tenancy is a design concept in which a single shared instance of a system serves multiple customers (or even multiple entities/organizations of a single customer). Software-as-a-Service (SaaS) is a software delivery method in which a hosted software application services the application’s functions for multiple customers, eliminating the need for individual customers to deploy and maintain the application on-premise. The relationship between multi-tenancy and SaaS is one of an enabler: multi-tenancy enables SaaS.
While the notion of multi-tenancy pre-dates SaaS, techniques for implementing multi-tenancy have become widely discussed only since the advent of SaaS. Despite numerous articles available on the Web, many architects and designers find it difficult to gain an understanding of the nuances involved in implementing multi-tenant software. This is where cataloging patterns for implementing multi-tenant SaaS applications would help.
In this Knowledge Sharing article, Ravi Sharda, Manzar Chaudhary, Rajesh Pillai, and Srinivasa Gururao identify and describe several architectural, design, and implementation patterns of multi-tenant SaaS applications. For each pattern, they explain what problem it solves, how it works, when to use it, and its pros and cons.
Examples of patterns covered in the article include:
• Architectural: Database-per-Tenant, Application-Instance-per-Tenant, Metadata-driven Architecture, etc.
• Design: Tenant Context, Extension Table layout, Tenant Resolver, etc.
• Implementation: Tenant Filter, Connection-Pool-per-Tenant, Sub-Domain-per-Tenant, etc.