Katkat

Design a scalable, reliable system

AnthropicSoftware Engineer · Technical Screen

Last updated

The prompt evaluates competence in large-scale distributed system design, covering storage architecture, consistency and replication strategies, caching, APIs and data models, operational reliability, security, and cost/capacity planning.

Design a scalable and highly reliable system to solve an open-ended, complex problem domain (e.g., content feed, ride matching, or file storage). Specify: (a) functional and non-functional requirements (availability, latency SLOs, throughput, consistency, durability); (b) high-level architecture (clients, API gateway, services, data stores, messaging/streaming); (c) core APIs and data models; (d) partitioning/sharding, replication, and consistency strategy (including transactions, idempotency, and schema evolution); (e) caching strategy across client, edge/CDN, and server tiers; (f) load balancing, request routing, and autoscaling; (g) failure handling (timeouts, retries with backoff, circuit breakers), backpressure, and disaster recovery (RPO/RTO, multi-region); (h) observability (metrics, logs, traces), rate limiting, and security (authn/authz, encryption); (i) capacity planning, cost trade-offs, and a phased scaling roadmap; (j) key bottlenecks, risks, and mitigations. Justify design choices and trade-offs throughout.