InterviewLegend

What Salesforce Tests in System Design

Alex Chen12 min readUpdated 25 real interview reports
In this lesson
  • Find out which design-round shape your Salesforce team uses before you walk in
  • See the three prompt families and where reported questions cluster
  • Learn to partition everything by tenant on a shared schema

The system design round at Salesforce runs about 45 to 60 minutes. More often than you would expect, it happens inside Quip, Salesforce's own collaborative doc tool, rather than on a whiteboard. You type and talk through tradeoffs in a shared document. That format hints at what the round wants from you: a narrated argument, not a pretty diagram. The harder thing to plan around is that two Salesforce candidates rarely get the same prompt. One team hands you a CRM data model, another asks you to write SQL against a schema, a third runs a textbook "design Ticketmaster." Knowing which of those is coming changes how you prep.

The Salesforce angle
Salesforce is a federation of clouds, so the team you interview with picks the prompt. Sales Cloud, Service Cloud, Marketing, Commerce, the core Platform, plus acquired orgs like Slack, Tableau, and MuleSoft each run their own loops with their own habits. There is no single canonical Salesforce design question the way "design a rate limiter" is canonical elsewhere. Candidates report the full spread: shared-schema multi-tenancy and CRM modeling on the platform teams, classic distributed-systems HLD on the infra-flavored teams, and low-level object modeling almost anywhere. Ask your recruiter which team and which cloud the loop is for, because that answer tells you whether to drill the metadata-driven platform or a generic scalable service.

The round, and where it sits

The onsite is roughly four rounds across about half a day, virtual by default. The modal shape is two coding interviews, one system design, and one behavioral or hiring-manager round, though new-grad loops often trim design to something light or optional and senior loops add weight to it. Design depth scales hard with level. An AMTS or MTS candidate may see design folded into an object-modeling exercise. An SMTS gets a real high-level design with data modeling and read-write tradeoffs. An LMTS or above gets the open-ended platform-and-scale prompts. The grid below is the shape to expect. Salesforce publishes no question list, so read it as a steer rather than a syllabus.

  • Format: 45 to 60 min, often in Quip. Conducted in a shared doc rather than a whiteboard on many teams, which rewards written, narrated tradeoffs over diagram polish. Candidates report being asked to revisit a choice and justify it on the spot, so reasoning transparency is weighted as heavily as the final architecture.
  • Where it sits: One round in a ~4-round onsite. Modal loop is two coding, one system design, one behavioral or hiring-manager round. New-grad and AMTS loops may make design light or optional; SMTS and above carry a full design round.
  • Team variance: Unusually high. Reported design prompts range from database and raw-SQL questions to CRM-modeling questions, team to team. The federation of clouds and acquisitions is why there is no one fixed prompt.
  • Level skew: Object modeling low, platform high. AMTS and MTS lean toward low-level object modeling folded into the round. SMTS gets real HLD with data modeling. LMTS and above get open-ended platform and scale prompts such as a marketing-campaign system or a connection pool.

The three families of prompt

Reported prompts cluster into three families. The multi-tenant and CRM-platform shapes are the differentiated core, the ones where a Salesforce-flavored answer is visibly different from a generic one. Generic high-level designs show up too, the same Ticketmaster and TinyURL and distributed-scheduler prompts any big-tech loop uses, with no special Salesforce signal. And low-level object modeling appears more often here than at peer companies, a legacy of the Apex and Java OOP heritage. The bars show relative emphasis, not a published distribution. They sit close together on purpose: team variance keeps any single shape from dominating.

Multi-tenant / CRM platformTenant isolation, CRM model, governor limits, event bus~55%
Generic HLDTicketmaster, TinyURL, scheduler, Shopify, NFS~40%
Low-level / object modelingParking lot, elevator, LRU and a Premium question~36%
Rate limiter / API gatewayReframed as per-tenant governor limits~24%
Notifications / eventsMaps to the Platform Events pub-sub bus~18%
Database / raw SQLSome teams ask you to write SQL directly~12%
Lead with the platform shapes, but prepare for an object-modeling or generic HLD prompt. The multi-tenant family is where a Salesforce answer earns its signal, yet the loop is variable enough that you cannot assume it. Treat the low-level object-modeling prompts as cross-over from the coding round and prepare them there

The low-level object-modeling prompts (parking lot, elevator, an LRU or a Premium question built as a class) overlap heavily with the coding interview. Prepare them in the object-modeling lesson, and treat this round as the place to show platform thinking. If a generic HLD lands, do not abandon the tenant lens. A multi-tenant Ticketmaster still partitions by org, still meters per-tenant load, and still earns the signal a generic answer leaves on the table.

The multi-tenant spine every platform answer shares

The Salesforce angle
Partition everything by tenant on one shared schema, and never reach for a database per customer. This is the single decision that separates a Salesforce answer from a generic SaaS answer. A single Salesforce instance, called a pod, runs one shared multi-tenant database. One physical schema holds thousands of customer orgs, around 8,000 per database across 50-plus pods. A metadata kernel reads each tenant's definitions at runtime and presents them a custom application, so adding a custom field never runs CREATE TABLE or ALTER TABLE. It inserts metadata rows. A candidate who proposes spinning up an isolated database for each tenant has answered a different question than the one Salesforce is asking. An interviewer who lives in this architecture will hear it immediately.

The data path below is the spine to carry into any platform prompt. A request arrives stamped with an OrgID. The metadata kernel resolves which virtual objects and fields the tenant has defined. A governor check guards the shared infrastructure, and the query rewriter turns a tenant's logical query into one that hits the generic physical tables. The reads land on pivot index tables to find candidate record IDs, then on the one enormous shared data table, both hash-partitioned by OrgID so a query only ever touches its own tenant's partition.

Loading diagram...

Read the path in chips. A request stamped with OrgID hits the metadata kernel, which resolves the tenant's virtual schema from the Universal Data Dictionary and passes a governor check. The query rewriter then turns it into SQL over the MT_Indexes pivot and the shared MT_Data table, returning a tenant-scoped result. The instinct to carry: OrgID is the partition key for everything, metadata replaces schema migrations, and governor limits are how shared infrastructure stays fair.

What the round rewards

The Salesforce angle
A limiter here is per-tenant fairness with governor limits, not a global token bucket. This is the Salesforce rate-limiting twist, and it carries real numbers you can name. Apex enforces hard per-transaction caps: 100 SOQL queries, 150 DML statements, 50,000 rows, 10 seconds of CPU. The API layer enforces a soft per-org daily limit instead: 100,000 calls plus 1,000 per user license on a rolling 24-hour window. It keeps processing until a system-protection threshold trips. A separate cap holds each org to 25 concurrent long-running requests. Hard versus soft, per-transaction versus per-org, concurrency versus volume: walking those distinctions is how you show you understand noisy-neighbor defense on shared infrastructure rather than a generic counter.

Two things help you more than they would at a typical loop. First, this architecture is genuinely documented. The multi-tenant internals, the governor limits, and the Platform Events bus all live on architect.salesforce.com, the developer docs, and Trailhead, so you can ground a claim in how Salesforce works instead of guessing. Use that. Second, the round prizes narrated tradeoffs. Candidates report interviewers asking them to revisit a choice and defend it, valuing the walk through alternatives over arriving at one correct answer. Make the reasoning explicit: why shared schema over schema-per-tenant, why a pivot index over indexing the flex table, why an ordered replayable log over fire-and-forget delivery.

Reads as a Salesforce answer

  • Threads OrgID through every table, cache key, and index, and keeps one shared schema with a metadata kernel rather than a database per tenant
  • Adds custom objects and fields as metadata inserts, never as runtime CREATE TABLE or ALTER TABLE
  • Frames a rate limiter as per-tenant governor limits with hard and soft caps, not a single global token bucket
  • Lands a notification or event prompt on a durable, time-ordered, replayable pub-sub log scoped by tenant, in the spirit of Platform Events
  • Narrates the tradeoff and revisits a choice when pushed, since reasoning transparency is weighted heavily

Reads as a generic SD answer

  • Spins up an isolated database per customer, answering a different question than the multi-tenant one being asked
  • Treats tenant isolation as a WHERE clause added at the end instead of the partition key the design is built on
  • Builds a global counter with no notion of per-org fairness or soft-versus-hard limit semantics
  • Designs a fire-and-forget notification fan-out with no ordering, retention, or replay for a platform that promises durable events
  • Reaches a single architecture and defends it as correct without weighing the alternatives the interviewer is fishing for

The worked designs

Five designs follow. Each is a distinct shape, and each carries the multi-tenant signature so the set reads as Salesforce and not generic big-tech. Start with the multi-tenant platform: it is the fullest version of the spine above and the design no other guide in this catalog teaches.

Design a Multi-Tenant SaaS Platform

The flagship: serve thousands of tenant orgs on one shared schema with isolated, customizable data. The metadata kernel and Universal Data Dictionary, generic flex columns plus pivot indexes, shard-by-tenant across pods, hash-partition by OrgID with partition pruning, and the shared-schema versus schema-per-tenant versus database-per-tenant tradeoff. The clearest place to show platform judgment.

Design a CRM Activity Feed

The per-record activity timeline shown on every account and contact: a time-ordered merge of tasks, emails, logged calls, and events, scoped per tenant. Write-fan-out versus read-time merge, per-record and per-tenant partitioning, pagination of a heterogeneous stream, and caching the hot records. A distinct read-heavy feed shape the platform and limiter designs do not cover.

Design Rate Limiting & Governor Limits

The limiter that enforces per-org request quotas and concurrency caps on shared infrastructure. Per-tenant counters on a rolling window, token-bucket versus sliding-window, hard versus soft limits with a system-protection threshold, the 25-concurrent-long-request cap, distributed-counter consistency, and noisy-neighbor fairness. The tenant-quota framing is what makes it Salesforce.

Design Search & Typeahead

Search over CRM records, typeahead and full search, scoped per tenant and kept fresh as records change. Async indexing fed from writes into a Lucene-style external index, tenant-scoped queries and ranking, the MT_Indexes pivot versus external-index split, fallback indexes for when the search service is down, and the freshness-versus-latency tradeoff.

Design a Notification / Event System

The real-time event bus behind Platform Events: deliver ordered, replayable events to many subscribers across many tenants. A durable time-ordered log, per-tenant topics, replay-from-offset by Replay ID, 72-hour retention, gRPC and WebSocket fan-out with client-driven flow control, at-least-once versus ordered delivery, and backpressure. A durable multi-tenant log, not a generic notification fan-out.

Each design assumes the fundamentals from the System Design course: the scaling playbook for read and write paths. The toolbox covers when to reach for a log, a cache, a queue, or an index. The low-level object-modeling prompts (parking lot, elevator, a cache built as a class) live in the object-oriented design lesson, since they belong to the coding round more than this one.

Key Takeaways

  • ✓The Salesforce design round runs 45 to 60 minutes, often in Quip rather than on a whiteboard. It is one round in a roughly four-round onsite, and it varies more by team than at most big-tech loops because Salesforce is a federation of clouds. Ask your recruiter which team and cloud the loop is for.
  • ✓Prompts fall into three families. Multi-tenant and CRM-platform shapes are the differentiator. Generic HLD is real but weak Salesforce signal. Low-level object modeling is more common here than at peers, but prep it in the coding round. Lead with the platform shapes without assuming you will get one.
  • ✓The one move that makes an answer Salesforce: partition everything by OrgID on one shared schema with a metadata kernel, never a database per tenant. Add custom objects as metadata, not DDL. Frame any limiter as per-tenant governor limits with hard and soft caps, and any event system as a durable, ordered, replayable tenant-scoped log.
  • ✓The architecture is publicly documented on architect.salesforce.com, the developer docs, and Trailhead, so ground your claims rather than guess. The round prizes narrated tradeoffs, so revisit and defend your choices out loud.
Had your Salesforce interview?Tell us what they asked. Reviewed before it goes in, never with your name.
Salesforce interview guide

Know what Salesforce asks before you walk in.

15 coding · 5 system design · 20 behavioral questions

Get Premium$49 a year · Cancel anytime
Or start freeNo card.

Get their questions first.

InterviewLegend is independent and not affiliated with or endorsed by any company it covers.