Database Concurrency & Scaling interview question · Most asked

How do you choose a shard key for a multi-tenant SaaS?

Summary

Pick the entity almost every query and transaction is scoped to — usually the tenant/workspace — and co-locate related tables by it. Use many logical shards on fewer physical databases, and directory overrides for whale tenants.

Longer Answer

A key misaligned with access patterns forces fan-out queries and cross-shard transactions. Notion sharded by workspace ID into 480 logical shards over 32 physical databases; Figma separated logical from physical sharding with a routing proxy. Keep global, cross-tenant tables (users, billing) unsharded or in a separate store.

Key Points

  • Shard by the scope of queries/transactions
  • Co-locate related tables
  • Logical vs physical shards
  • Directory overrides for whales

Deep dive: Sharding Strategies

More most-asked Database Concurrency & Scaling questions

← All Database Concurrency & Scaling questions