Back to encyclopedia

Encyclopedia

Multi-tenancy

One application serving multiple separate customers while keeping their data apart.

Multi-tenancy is an architecture where a single application, running from a single codebase, serves multiple customers ("tenants") while keeping each tenant's data strictly separated. Instead of deploying a fresh copy of the software for every customer, one deployment serves everyone, invisibly to each of them.

How multi-tenancy is typically built

There are a few common approaches, each with different tradeoffs:

  • A single database with a tenant identifier on every relevant table, the simplest and most common approach

  • Separate database schemas per tenant, giving stronger isolation with a bit more operational overhead

  • Fully separate databases per tenant, the strongest isolation, usually reserved for tenants with strict compliance needs

What multi-tenancy is good for

Multi-tenancy is the backbone of most SaaS products. It lets you maintain and improve one application while serving many customers, instead of maintaining a separate installation per client, which becomes unmanageable past a handful of customers.

What to get right

Data isolation has to be airtight; a bug that lets one tenant see another's data is the worst-case scenario for this architecture. Beyond that, you need to plan for per-tenant customization, scaling as tenant count grows, and how a tenant's data gets exported or deleted when they leave.

Vulpo and Multi-tenancy

We build SaaS platforms and back-office systems that serve multiple clients from a single codebase. Multi-tenancy is something we design in from the start of a Laravel project, not something bolted on after the fact once it becomes a problem.

Got a question?

Knowing what a term means is one thing; knowing whether it matters for your project is another. If you're not sure how it applies, a short conversation usually sorts it out faster than more reading.
We use cookies and similar technologies to enhance your browsing experience, analyze site traffic, and personalize content. You can customize your preferences at any time.
Manage your cookie consent preferences.

These cookies are essential for the proper functioning of our website. They enable core functionality such as page navigation, access to secure areas, and basic user interface features.

These cookies enable the website to provide enhanced functionality and personalization. They may be set by us or by third-party providers whose services we have added to our pages.

These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site.

These cookies are used to deliver advertisements that are more relevant to you and your interests. They are also used to limit the number of times you see an advertisement and help measure the effectiveness of advertising campaigns.