System Design · Guide

Database Sharding

Shard keys, rebalancing, cross-shard queries.

— min read System Design

Theory

Database Sharding: Shard keys, rebalancing, cross-shard queries.

Database sharding horizontally partitions rows across multiple database instances when a single node cannot meet storage, memory, or write throughput requirements. Each shard is an independent database holding a subset of data.

The shard key determines placement — typically user_id or tenant_id to colocate related rows. Cross-shard JOINs and global aggregates require scatter-gather queries with high latency; design schemas to minimize them.

Rebalancing shards when adding capacity is operationally heavy — plan key spaces with room to split. Tools like Vitess (MySQL) and Citus (Postgres) automate routing; application-level sharding requires a shard map in code. Shard only when vertical scale is exhausted.

Production rollouts require idempotent automation, peer review, staged apply, and documented rollback — treat changes as production code.

Interviewers want STAR stories linking Database Sharding to measurable outcomes: fewer outages, faster deploys, lower cost, or reduced toil.

Architecture Diagram

Users / clients
         |
  Database Sharding
         |
  Core services
         |
  Data + observability

Examples

bash
# Database Sharding
# Shard keys, rebalancing, cross-shard queries.
# Validate in staging before production rollout.

Interview Questions

What problem does Database Sharding solve?

It addresses the core use case described in production architecture — map features to reliability, scale, or velocity outcomes.

Key components of Database Sharding?

Identify inputs, outputs, control plane, data plane, and failure domains — interviewers want structured decomposition.

Common production pitfalls?

Misconfiguration, missing observability, no rollback path, and scaling bottlenecks under peak load.

How do you test changes safely?

Staging parity, canary/gradual rollout, automated health checks, and documented rollback.

Metrics to prove success?

Error rate, latency percentiles, throughput, cost, and toil reduction — pick one primary SLO.

Beginner vs advanced concern?

Beginners focus on setup; advanced teams focus on blast radius, security boundaries, and operability at 10× scale.

Best Practices

  • Treat Database Sharding config as code with review and CI validation.
  • Define SLOs and dashboards before production cutover.
  • Document rollback and ownership for on-call.
  • Use least privilege for credentials.

Common Mistakes

  • Adopting Database Sharding without measurable success criteria.
  • No staging environment mirroring production constraints.
  • Missing rollback path during incidents.
  • Undocumented on-call expectations.

Trade-off Analysis

Database Sharding improves shard keys, rebalancing, cross-shard queries. but adds operational and cognitive complexity — justify with load and team size.

Favor simplicity until metrics (p99 latency, error rate, cost) prove the pattern necessary.

Every redundancy layer trades capital/operational cost for availability — align with explicit SLO targets.

Document accepted inconsistency windows and recovery behavior before production cutover.

Cheat Sheet

DatabaseShard keys, rebalancing, cross-shard queries.
SLOService level objective
RollbackRevert to last known good
CanaryLimited blast-radius rollout
RunbookIncident steps

Practical Exercises

Database Sharding sandbox

Stand up Database Sharding locally or in free tier; document commands and failure recovery.

Failure drill

Introduce misconfiguration; practice detection and rollback under time limit.