A fast-growing service stores all user data in a single Postgres node that has reached 10 TB. Writes are slowing down and the node can no longer scale vertically. Partition the data horizontally across multiple shards.
Sharding partitions a dataset horizontally across multiple database nodes by a partition key, so each shard holds only a slice of the data. It scales writes and storage beyond a single node. The trade-off is the loss of cheap cross-shard joins and transactions, plus the operational cost of re-sharding hot keys.
Evaluation criteria and weights will be revealed after you submit your solution. This ensures a fair assessment of your design skills.
Draw your architecture diagram, explain your design decisions, and get AI-powered feedback.
For the best experience, design challenges on a desktop or tablet — drawing the architecture on a phone is hard.