Skip to main content

Zero-downtime supergraph migration for a global retailer

:::note Sample content Placeholder structure — swap in the real engagement details, with client approval on all numbers. :::

The situation

Dozens of product teams shipping against a monolithic GraphQL server that had become the org's bottleneck: every schema change queued behind a single deploy train, p95 latency degrading quarter over quarter, and peak trading events requiring change freezes measured in weeks.

What we did

  • Ownership mapping before any code. Workshopped the entity ownership model with every domain team — who owns Product, Order, Customer, and who merely contributes (why this matters).
  • Supergraph architecture. Router topology, subgraph boundaries aligned to team boundaries, schema governance and composition checks in CI.
  • Staged migration. Strangler pattern: the monolith graph became "subgraph zero" behind the new router on day one, then domains peeled off one at a time — no big-bang cutover, no client changes.
  • Plan engineering. Query-plan reviews for the top operations killed the gateway-level N+1s before launch (the gotcha).

The result

  • 40+ subgraphs federated across regions
  • p95 latency down 35% against the monolith baseline
  • Zero downtime through the migration, including a peak trading season mid-programme
  • Schema change lead time from weeks (shared deploy train) to same-day, per-team

What made it work

Boring discipline, not clever tech: ownership decided before directives, composition checks blocking bad merges, and query plans read by humans before every domain cutover.