System Design (Technical Screen): Database Portion of a Project
Provide a structured description of the database component of a real project you owned. Keep your answer concrete, covering design choices, rationale, and outcomes.
What to Cover
-
Business and performance goals
-
Product context, user journeys, SLOs/SLAs (latency, availability), data retention, compliance/PII, multi-tenancy.
-
Data model and access patterns
-
Core entities, relationships, item sizes, cardinality; top read/write queries and their frequencies; pagination and filters.
-
Datastore selection
-
Chosen datastore(s) (e.g., DynamoDB, Postgres, Elasticsearch), why they fit, and why alternatives were not chosen.
-
Partitioning and indexing strategy
-
Partition and sort keys; sharding; GSIs/LSIs; projected attributes; TTL; hot key mitigation.
-
Consistency settings and semantics
-
Precisely define consistency (e.g., strong vs. eventual, read-after-write, monotonic reads, transactional/ACID scope). Explain implications for read and write paths and user-visible behavior.
-
Trade-off evaluation
-
How you balanced cost, latency, throughput, availability, durability, and operational complexity.
-
Completion and validation
-
What you delivered, how you load/scale tested, correctness checks, shadow/canary, and success metrics.
-
Lessons learned
-
Pitfalls, edge cases, what you would do differently.