Deeper dive
Canary routing at the gateway let two client versions coexist during peak season withoutforking backends.
One graph over legacy REST microservices — storefront teams ship features without waiting on central API releases.
Store, cart, and loyalty lived in separate services with different REST contracts. Every new screen required API sync meetings and long release trains.
We introduced a federated graph with clear domain ownership, schema review in CI, and router-level auth so product teams could extend the graph without trampling each other.
Subgraphs per domain behind a managed gateway; persisted queries for the mobile app; field-level cost limits to protect the core from runaway partners.
Event storming with business and platform to draw seams that match how teams actually ship.
Catalog service first — patterns for tracing, errors, and deprecation banners.
Rolling federation of checkout and loyalty with shadow traffic before cutover.
Synthetic journeys plus anomaly alerts on resolver depth and fan-out.
Product squads prototyped omnichannel journeys in days instead of quarters. Governance stayed humane: schema linting caught mistakes before prod, not politics in Slack.
Canary routing at the gateway let two client versions coexist during peak season withoutforking backends.