A principle in software architecture where a single instance of the software runs on a server, serving multiple client organizations (tenants).
Multi-tenancy allows multiple users (tenants) to use an application which runs on the same computer. This can be done in two ways:
- Multiple instances
- Share instance
The multiple instances pattern runs an application instance for each user, for example by using virtual machines. The obvious downside of this is the resource requirement, as each instance requires allocated memory.
Multi-tenancy is also regarded as one of the essential attributes of Cloud Computing and Software as a Service (SaaS)