Tuesday, May 13, 2025

Data Modeling Patterns for Multi-Tenant SaaS Applications

If you’ve ever designed a dimensional model in a data warehouse, you probably know Ralph Kimball and his book The Data Warehouse Toolkit. Back in the day, for many data architects, the book became a sacred and foundational reference. Quoted in meetings, memorized line by line, it was treated as the final word in decision making. Without a doubt, it shaped how we thought about data modeling.

Data modeling for multi-tenant SaaS apps is way simpler, but just as easy to get wrong. What “tenant” means can vary wildly: a company, a workspace, even a single user. Get it wrong early, and you’ll feel it later, in billing, permissions, performance, or all three.

This guide breaks down real-world multi-tenant models — what they look like, when to use them, and how to avoid dead ends. It’s not by any means a new Kimball Toolkit, but it aims to bring a practical models for multi-tenant applications, grounded in today’s SaaS landscape.

We can categorize today's landscapes as:

  • 1) Developer Tools (e.g. Notion, Slack, Linear)
  • 2) B2B (e.g. Vercel, Supabase, Stripe)
  • 3) B2C (e.g. Spotify, Duolingo)
  • 4) Marketplaces (e.g. Etsy, Airbnb)

There are more but we are attain at these. They already give a sense of how to model the usual concerns. There are even hybrid cases, where a company are B2B/B2C and employ one or more definition for tenants with an establish hierarchy of them, e.g. an organization composed of teams (e.g. Figma.)

Hybrid Organization

So far it looks natural, there is a clear hierarchy, team members are independent from one to another, developers are happy because there is a clear distinction but then business rules come on and the logic starts to get fuzzy. Hierarchies get complex, and multiple decisions needs to be done to know who has access to what, where and how. By having a good data modeling one saves tons of decisions and trouble down the line to downstream parts of the system. But that means that one has to do a big lift thinking about the modeling. Given that each hierarchy only adds more complexity.

Complexity

Let's get hands on models for the landscape:

1) Developer Tools