SYSTEM Cited by 4 sources
Zalando Fashion Store API (FSA)¶
What it is¶
The Fashion Store API (FSA) is Zalando's production deployment of the Unified Backend-For-Frontends (UBFF) GraphQL schema for zalando.com. It is the GraphQL aggregator that every page on the Zalando web and app consumes: the Rendering Engine — the runtime of the Interface Framework — issues GraphQL queries to FSA for each UI component's data, and FSA fans those out across Zalando's internal microservices and aggregates the responses (Source: sources/2021-03-03-zalando-how-we-use-graphql-at-europes-largest-fashion-e-commerce-company).
FSA's defining architectural property is that it consults only Zalando-operated APIs — third-party integrations are wrapped by internal proxy services first (e.g. the Contentful proxy for the Landing Pages stack), so FSA itself never becomes a direct runtime dependency of an external vendor (patterns/proxy-layer-for-external-saas; Source: sources/2022-09-28-zalando-more-editorial-content-please).
Relationship to UBFF¶
Where systems/zalando-graphql-ubff is the architecture (a single-service unified-graph BFF across 12+ domains running on in-house systems/graphql-jit), FSA is the name of the production instance behind the Fashion Store — the customer-facing surface of zalando.com. Earlier Zalando posts use "Fashion Store API" and "the UBFF" somewhat interchangeably; on this wiki, FSA is the concrete deployment and UBFF is the architectural pattern and schema.
Architectural role¶
Web client / App client
│
▼
[Rendering Engine](<./zalando-rendering-engine.md>) — walks entity tree,
issues GraphQL per renderer
│
▼
FSA — GraphQL aggregator
│
├──→ product service
├──→ catalog service
├──→ cart / checkout service
├──→ recommendations
├──→ [Contentful proxy](<./zalando-content-proxy.md>)
│ └─→ [systems/contentful](<./contentful.md>) (external SaaS,
│ isolated behind the proxy)
└──→ dozens of other internal services
Design disciplines¶
- No business logic in FSA — FSA is platform- and domain-agnostic; business logic lives in the downstream presentation-layer backends.
- Zalando-operated downstreams only — third-party APIs are wrapped by internal proxies first. The Contentful proxy is the canonical example.
- Per-platform deployment bulkhead via UBFF-level discipline — separate Web and App deployments of the same service, so a mobile regression cannot block the web release train (patterns/per-platform-deployment-bulkhead).
- Persisted queries in production — FSA rejects raw GraphQL in production and accepts only registered persisted-query IDs (see concepts/graphql-persisted-queries).
Seen in¶
- sources/2021-03-03-zalando-how-we-use-graphql-at-europes-largest-fashion-e-commerce-company — introduces FSA under its UBFF framing.
- sources/2021-03-10-zalando-micro-frontends-from-fragments-to-renderers-part-1 — frames FSA as Interface Framework's data aggregation tier.
- sources/2022-09-28-zalando-more-editorial-content-please — canonicalises FSA's "aggregation layer calls only Zalando-operated APIs" isolation discipline, realised for the Landing Pages stack via the Contentful proxy.
- sources/2023-06-25-zalando-context-based-experience-in-zalando — FSA becomes the transport for request-scoped Experience context. When the Rendering Engine issues child-renderer queries, the resolved Experience name travels as an explicit query parameter; FSA passes it to the owning domain backend (Catalog / Product / Search), which applies the Experience's policies when shaping the response. FSA itself does not evaluate selection rules or pick the Experience — that is owned by the domain backend closest to root-entity resolution. FSA's role is consistent with no business logic in the aggregator: Experience-awareness is a transport concern, not a rules-evaluation concern. Canonical wiki instance of patterns/request-state-propagated-experience.
Related¶
- systems/zalando-graphql-ubff · systems/zalando-interface-framework · systems/zalando-rendering-engine · systems/zalando-content-proxy · systems/contentful · systems/zalando-landing-pages-stack · systems/graphql · systems/graphql-jit
- concepts/backend-for-frontend · concepts/unified-graph-principled-graphql · concepts/experience-zalando-if · concepts/root-entity-experience-resolution · concepts/presentation-policy · concepts/selection-metadata
- patterns/unified-graphql-backend-for-frontend · patterns/business-logic-free-data-aggregation-layer · patterns/proxy-layer-for-external-saas · patterns/request-state-propagated-experience
- companies/zalando