English for GraphQL Federation

Learn the English vocabulary for GraphQL federation: subgraphs, the gateway, and entity resolution, explained for discussing distributed GraphQL architecture clearly.

Splitting one giant GraphQL schema across teams sounds simple until someone asks “which service actually owns this field,” and federation’s vocabulary — subgraphs, entities, the gateway — is exactly the language that answers that question precisely instead of vaguely.

Key Vocabulary

Subgraph — an individual GraphQL service owned by one team, exposing part of the overall schema, that gets composed with other subgraphs into a single unified graph. “The orders subgraph owns the Order type entirely, while the shipping subgraph only extends it with a trackingStatus field.”

Supergraph — the single composed schema produced by combining all subgraphs, representing what clients actually query against, even though no single service implements all of it. “Clients only ever see the supergraph — they have no idea that a query touches four different subgraphs behind the scenes.”

Gateway — the router that receives incoming GraphQL queries against the supergraph, breaks them into sub-queries for the relevant subgraphs, and stitches the results back into one response. “The gateway split that single query into three requests — one to the users subgraph, one to orders, and one to inventory — then merged the results before returning them.”

Entity — a type that spans multiple subgraphs, where one subgraph defines the type’s primary fields and other subgraphs contribute additional fields by referencing it via a key. Product is an entity — the catalog subgraph owns the core fields like name and price, and the reviews subgraph extends it with an averageRating field, keyed by the product ID.”

Key directive — the schema annotation (@key(fields: "id")) that tells the gateway how to uniquely identify an entity across subgraphs, so it can join data contributed from different services. “We added a @key(fields: "id") directive on Product in the reviews subgraph so the gateway knows how to match reviews back to the right product from the catalog subgraph.”

Common Phrases

  • “Which subgraph actually owns this field?”
  • “Is this type an entity, or does it only exist in one subgraph?”
  • “The gateway is timing out — is that one slow subgraph, or a composition issue?”
  • “Did we add the key directive so the gateway can resolve this entity across services?”
  • “Does the supergraph schema compose cleanly, or are there conflicting field definitions?”

Example Sentences

Explaining ownership boundaries in a design doc: “We’re splitting the monolithic schema into subgraphs along team boundaries — the orders team owns the Order entity’s core fields, and any team that needs to extend it adds fields in their own subgraph using the key directive.”

Debugging a slow federated query:
“The gateway is fanning this query out to five subgraphs when it only needs two — the composition is including an entity extension that isn’t actually being requested.”

Reviewing a schema composition failure: “The supergraph failed to compose because two subgraphs both declared a non-nullable status field on the same entity with different types — one of them needs to change before this can deploy.”

Professional Tips

  • Name the specific subgraph that owns a field when discussing ownership or debugging — “who owns this” is one of the most common questions in a federated architecture and deserves a precise answer.
  • Distinguish an entity from an ordinary type explicitly — only entities need a key directive, and treating every type as one adds unnecessary complexity.
  • Explain gateway fan-out behavior when a federated query is slow — the number of subgraphs touched, not query complexity alone, often explains the latency.
  • Flag composition failures as schema-level, not runtime, issues in incident write-ups — a broken supergraph composition blocks deployment before any query ever runs.

Practice Exercise

  1. Write a sentence explaining the difference between a subgraph and the supergraph.
  2. Explain what the key directive does for an entity.
  3. Describe what the gateway does when it receives a query that spans multiple subgraphs.

Bridging the Gap: Speaking with Confidence in Federated Environments

Let’s face it – when you’re working with complex systems like GraphQL Federation, the terminology can feel overwhelming. It’s not just about understanding what you’re doing; it’s about articulating that understanding clearly and concisely to your team, whether that’s during a code review, a Slack discussion, or writing a pull request description. For developers who are building their professional English skills alongside their technical expertise, this can be particularly challenging. The nuances of describing distributed systems—the relationships between subgraphs, the role of the gateway, and the complexities of entity resolution – demand precision and a vocabulary that goes beyond simple definitions.

A key area where non-native speakers often struggle is framing discussions about potential issues or proposed solutions. Instead of simply stating “This isn’t working,” you need to convey why it’s not working and suggest a path forward in a way that resonates with your colleagues. For example, imagine receiving a comment on a pull request: “The field ‘orderTotal’ is missing from the subgraph. Investigate entity resolution.” A less polished response might be, “Fix it.” But a more effective one – demonstrating you understand the underlying problem - would be, “I’ve identified that orderTotal isn’t being returned by the ‘Orders’ subgraph. This likely stems from inconsistencies in how order totals are calculated across different systems, requiring us to refine our entity resolution strategy to ensure data synchronization.” Notice the shift: it acknowledges a potential root cause and suggests a more targeted approach.

Furthermore, when documenting your work – particularly within PR descriptions – using precise terminology is crucial for maintainability and collaboration. Consider this example: “Implemented a new gateway endpoint to aggregate data from the ‘Products’ and ‘Inventory’ subgraphs. The gateway utilizes a custom resolver function (see below) to perform entity resolution based on product IDs, ensuring consistent naming conventions across both sources.” This description isn’t just stating what you did; it’s explaining how you did it and highlighting the critical element of entity resolution – something that can easily be misunderstood if not clearly articulated. Focusing on the ‘why’ behind your decisions, alongside the ‘what’, is paramount for effective communication in a federated environment.

Finally, remember that active listening and asking clarifying questions are just as important as expressing yourself effectively. Don’t hesitate to politely request further explanation if you’re unsure about something – phrases like “Could you elaborate on how entity resolution is handled in this context?” or “Can we discuss the potential impact of these changes on the gateway’s performance?” demonstrate engagement and a commitment to understanding the bigger picture. Building confidence in your English, coupled with a proactive approach to communication, will undoubtedly accelerate your success in navigating the complexities of GraphQL Federation.

# Example: Using `graphql-cli` to query an entity resolution issue
graphql --schema https://example.com/schema.graphql \
       --query '{ subscription(id: "your_subscription_id") {  order { orderTotal } } }'

Frequently Asked Questions

What English level do I need to read "English for GraphQL Federation"?

This article is tagged Advanced. If you find the vocabulary difficult, start with a related Vocabulary vocabulary exercise first, then come back — technical reading gets much easier once the core terms feel familiar.

Is this article free to read?

Yes. Every article on CoderSlingo, including this one, is free to read with no account, sign-up, or paywall.

How is reading this article different from doing an exercise?

Articles like this one explain concepts and vocabulary in context through prose, while exercises are interactive drills — fill-in-the-blank, matching, and multiple-choice — that test and reinforce specific terms. Reading builds understanding; exercises build recall.