Compare core system design tradeoffs with scenarios
Company: BitGo
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Technical Screen
For a web-scale service, compare the tradeoffs among: monolith vs microservices; relational vs document vs wide-column databases; synchronous RPC vs event-driven messaging; REST vs gRPC; caching strategies (write-through, write-back, write-around); strong vs eventual consistency; partitioning strategies (range, hash, consistent hashing); and load balancing (round-robin, least-connections, consistent hashing). For each, give concrete scenarios and quantitative targets (e.g., 20k QPS, P99 200 ms, 99.99% availability), justify a choice, and discuss implications for latency, availability, cost, operability, and failure modes.
Quick Answer: This question evaluates competency in system design and architectural trade-offs across service decomposition, data storage models, communication patterns, API protocols, caching, consistency, partitioning, and load balancing, with attention to scalability, latency, availability, cost, and operability.