Search code examples
database-designarchitecturedatabase-schemamulti-tenantsaas

SaaS database design - Multiple Databases? Split?


I've seen SaaS applications hosted in many different ways. Is it a good idea to split features and modules across multiple databases? For example, putting things like the User table on one DB and feature/app specific tables on another DB and perhaps other commonly shared tables in another DB?


Solution

  • Start with one database. Split data/functionality when project requires it.

    Here is what we can learn from LinkedIn:

    • A single database does not work
    • Referential integrity will not be possible
    • Any data loss is a problem
    • Caching is good even when it's modestly effective
    • Never underestimate growth trajectory

    Source:

    LinkedIn architecture

    LinkedIn communication architecture