Sharding vs partitioning: real examples from Figma, GitHub and Notion
Published 2026-10-19 · Built only from first-party engineering write-ups in our database. Every number below comes from the linked source.
Partitioning splits data into smaller pieces; sharding is partitioning rows across separate database servers. In our database, vertical partitioning means moving whole table groups to their own database, as Figma, GitHub (schema domains) and GitLab (a separate CI database) did. Horizontal sharding splits rows of the same tables across servers, as Figma, Notion, Slack and Shopify did. Figma's posts show both in order: vertical partitioning (2023), then horizontal sharding (2024).
Sharding vs Partitioning: side by side
| Sharding | Partitioning | |
|---|---|---|
| Stories in our database | 11 | 6 |
| Companies | Datadog, Discord, Figma, Meta, Notion, PlanetScale, Shopify, Slack and Stripe | Discord, Figma, GitHub, GitLab, LinkedIn and Tiger Data (Timescale) |
| Published | 2017–2026 | 2016–2023 |
| Stack in these stories | PostgreSQL (4), MySQL (3), Vitess (3), AWS RDS (2) | PostgreSQL (3), Ruby on Rails (2), AWS RDS (1), Cassandra (1) |
| Scale numbers stated in sources | 118.5M QPS sustained for 16 minutes (PlanetScale); 1.5 PB (Stripe); 1 million QPS (PlanetScale) | 350 TB+ (Tiger Data (Timescale)); billions of messages (Discord) |
| Direct comparison story | Figma: The growing pains of database architecture; Figma: How Figma's Databases Team Lived to Tell the Scale | (same story) |
Verdict
Partition first when whole table groups can move apart. Shard when a single table group outgrows one database. Figma's two posts show that sequence.
Counts are stories in How They Scaled tagged with each side, see the horizontal sharding and vertical partitioning pages. They describe what these teams wrote about, not market share or benchmark results.