Design under vague distributed requirements
Company: Snowflake
Role: Software Engineer
Category: System Design
Difficulty: hard
Interview Round: Technical Screen
You are given a vague distributed-systems prompt. Show how you would clarify requirements and then design the system end to end: define the core use cases and SLAs, propose external APIs, select a data model, choose a sharding and replication strategy, justify a consistency model (strong vs eventual), and explain read/write paths. Describe failure handling (timeouts, retries, idempotency), leader election, backpressure, hot-key mitigation, caching, schema evolution, observability (metrics, logs, tracing), security, and capacity planning. Present a high-level architecture and discuss the key trade-offs you made.
Quick Answer: This question evaluates expertise in distributed system architecture, metadata and schema management, transactional DDL semantics, consistency and replication strategies, API and data-model design, multi-tenant isolation, observability, security, and capacity planning.