Multi-tenant architecture

multitenancy-vs-single-tanancy-1

Multi-tenant architecture is a design where a single instance of a software application serves multiple customers, or "tenants," who share the same underlying resources like a database and server but have their data and configurations securely isolated. This model is common in cloud services like SaaS, as it is more cost-efficient and easier to maintain for the provider since updates are made to a single application instance for all users.

Key characteristics

  • Shared Resources: Tenants share the same application instance, operating system, hardware, and database infrastructure.
  • Data Isolation: Each tenant's data is logically separated and kept private, making it invisible to other tenants.
  • Customization: Tenants can often customize aspects of their experience, such as the user interface, without changing the core application code.
  • Cost Efficiency: By sharing resources, the cost per user is lower, and the provider only needs to maintain a single application instance.
  • Simplified Maintenance: Updates, security patches, and maintenance are managed centrally by the provider, ensuring all tenants are on the same version.

Analogy: An apartment building This architecture is like an apartment building where many tenants live in separate, private apartments but share common infrastructure like the foundation, roof, and plumbing.

Comparison to single-tenant architecture

  • Multi-tenant: A single, shared application instance serves many tenants, like multiple families in one building.
  • Single-tenant: Each tenant has their own dedicated, isolated instance of the application, much like each family living in its own separate house.