Rent the store, own the layer in front of it: ten years of Figma
How Figma scaled a real-time collaborative product from 2016 to 2026 without migrating off a single managed datastore, by inserting owned layers (the per-file multiplayer authority and its journal, LiveGraph, DBProxy, FigCache, PGKeeper) in front of rented AWS stores, and where that pattern broke.
A single-company dig reconstructed from Figma's own postmortems and design posts, its S-1, and first-hand git archaeology of Redis, PgBouncer and Skew. It gives an architect the decade's layers in order, seven decisions with the condition that flips each, three postmortems and two design breaks in two failure classes with transferable rules, a dated numbers table that separates measured from claimed, and a six-rung ladder that reproduces the pattern and its failures on a laptop.
Every system Figma has described building in-house since 2018 is a thin layer in front of a store it rents (RDS Postgres, ElastiCache, S3, DynamoDB), and the one substrate it owned outright, its own language Skew, is the one thing it published deleting.
What you get out of it
- Figma rejected CockroachDB, TiDB, Spanner, Vitess and NoSQL and sharded the same RDS Postgres behind DBProxy in nine months; the layer made the split cheap rather than avoiding it.
- Both formal outage postmortems (January 2020, June 2022) are one workload saturating a shared managed store; each later layer is a way to stop one caller spending everyone's budget.
- The June 2022 cache outage came from cluster pub/sub fanning every message to every node; upstream sharded pub/sub had merged in January 2022 but reached users only through Redis 7.0.
- Partitioning Postgres broke LiveGraph's assumption of one globally ordered change stream; invalidate-and-refetch survived the new topology where incremental maintenance did not.
- PgBouncer's multithread mode is still an unmerged PR in October 2026; Figma's PGKeeper added the priority admission that multi-process scale-out cannot.
Scope
Why this, now. Figma's 2025 S-1 put an audited figure on its AWS commitment for the first time, and its 2026 FigCache and PGKeeper posts completed the pattern that began with DBProxy, so the decade can now be read end to end.
What it does not cover. AI features and the MCP server, Dev Mode and FigJam product logic, the warehouse beyond its ingestion path, security programs beyond plugin sandboxing, and organisation and hiring; request rates, shard counts and per-store costs are marked open because Figma has not published them.
Other field guides
The workspace stopped being the shard: ten years of Slack
A single-company dig reconstructed from Slack's own postmortems, engineering posts and QCon talks, and from first-hand git archaeology of the Vitess …
32 sources · 12 organisations · 6 postmortemsThe object store became the quorum: ten years of Elasticsearch, read from its own repository
A decade of one search engine's coordination design, reconstructed from two complete git histories, the design documents committed inside them, and a…
26 sources · 2 organisations · 3 postmortemsChoosing the backend
Reconstructs the backend-selection stack from Google's SRE book and Prequal paper, Netflix's edge redesign, Twitter's aperture work, Uber's dynamic s…
30 sources · 18 organisations · 5 postmortems