Distributed Systems 17 Oct 2026 28 min read

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.

The finding that surprised me

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.

Open the field guide → Self-contained: it loads nothing at read time, follows your system theme, and prints cleanly.