← Salesforce Interview Insights

Salesforce·Software Engineer·Onsite - System Design / Architecture·Senior

SeniorPrefer not to say
May 2026

Summary

Salesforce system design round, one big question about building a 911 call service from scratch. Pretty intense scope for a single session and I definitely underestimated how much the regulatory and failover angles would come up.

Questions Asked (1)

Q1

Design a 911 emergency call service. It needs to accept incoming calls, locate the caller via GPS and cell tower data, route the call to the nearest available dispatcher based on jurisdiction, record audio and transcripts, and notify dispatchers of queued calls. How do you handle the data model, routing logic, and failover?

System DesignData ModelingTechnical Trade-offs
Author's notes

I started with the happy path, which felt fine at first, but the interviewer kept pushing on what happens when the primary datacenter goes down mid-call.

Create a free account to read the full note

AI HintsAI Generated

Suggested Approach

Start by clarifying requirements and constraints, then design a high-level architecture that separates concerns: ingestion, location resolution, routing, recording, and notification. Dive into the data model for calls, locations, and dispatchers, and explain the routing algorithm with jurisdiction mapping. Finally, discuss failover strategies for each component to ensure high availability and reliability.

Pro tip: Emphasize the life-critical nature of the system: prioritize low latency, high availability, and data consistency. Mention that you would use a multi-region active-active deployment with automatic failover and idempotent processing to handle duplicate calls.

1. Clarify Requirements and Constraints

Ask about scale (calls per second), latency requirements, geographic coverage, regulatory constraints (e.g., FCC), and integration with existing emergency systems. Establish non-functional requirements like 99.999% availability and <1s routing latency.

2. High-Level Architecture

Outline components: call ingestion (telephony gateway), location service (GPS/cell tower), routing engine, dispatcher assignment, recording service, and notification service. Use a message queue for decoupling and event-driven processing.

3. Data Model Design

Define entities: Call (id, timestamp, status, location, audio_url, transcript), Dispatcher (id, jurisdiction, status, skills), Jurisdiction (polygon, dispatcher_pool), and Location (lat, long, accuracy, source). Use a geospatial database for jurisdiction mapping and a time-series DB for call records.

4. Routing Logic

Explain the routing algorithm: resolve location to jurisdiction via geofencing, find available dispatchers in that jurisdiction, and assign based on proximity, load, and skills. Use a consistent hashing or priority queue for assignment, and handle overflow to neighboring jurisdictions.

5. Failover and Reliability

Describe failover for each component: redundant telephony gateways, multi-region deployment for routing and data, automatic retries with idempotency, and fallback to manual dispatch if systems fail. Ensure recording and transcription are persisted with replication.

Key Points to Mention

  • Use of geospatial indexing (e.g., PostGIS, Geohash) for fast jurisdiction lookup.
  • Idempotent call handling to avoid duplicate dispatches due to retries.
  • Event-driven architecture with Kafka or similar for scalability and decoupling.
  • Multi-region active-active deployment with automatic failover and data replication.
  • Priority-based routing to ensure critical calls are handled first.
  • Compliance with emergency services regulations (e.g., NG911, E911).

AI-generated suggestions, not part of the candidate's original notes. May be inaccurate — verify before relying on them.