From bacfb97d3b0e2356fa246737e3d7a13fa0830e95 Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 10 Mar 2026 00:07:58 +0100 Subject: [PATCH 1/6] [Fusion] Add entities chapter --- .../docs/fusion/v16/entities-and-lookups.md | 153 +++--------------- .../src/docs/fusion/v16/getting-started.md | 23 +-- 2 files changed, 22 insertions(+), 154 deletions(-) diff --git a/website/src/docs/fusion/v16/entities-and-lookups.md b/website/src/docs/fusion/v16/entities-and-lookups.md index 0533a583449..52660cc53fb 100644 --- a/website/src/docs/fusion/v16/entities-and-lookups.md +++ b/website/src/docs/fusion/v16/entities-and-lookups.md @@ -2,20 +2,18 @@ title: "Entities and Lookups" --- -# Entities and Lookups +Entities are the mechanism that makes distributed GraphQL work. They are types with stable keys that can be referenced and resolved across subgraphs. For example, the Products subgraph defines the `Product` type, and the Reviews subgraph contributes the `reviews` field to `Product`. The Accounts subgraph defines the `User` type, and other subgraphs can contribute additional fields to `User`. Without entities, each subgraph would be an isolated API. With entities, those subgraphs compose into one unified API. -Entities are the mechanism that makes distributed GraphQL work. They are types that can be uniquely identified and resolved across multiple subgraphs -- the `Product` that the Products subgraph defines and the Reviews subgraph extends, the `User` that the Accounts subgraph owns and the Reviews subgraph adds reviews to. Without entities, each subgraph would be an isolated API. With them, you get one unified graph. - -This page covers entity resolution in depth: how entities work, how lookups enable cross-subgraph resolution, how field ownership works, and how to optimize entity fetching. If you completed the [Getting Started](/docs/fusion/v16/getting-started) tutorial, you already used entities and lookups. This page goes deeper. +This page explains entity resolution in more detail: how entities are defined, how lookups resolve them across subgraphs, and how field ownership is enforced. If you completed the [Getting Started](/docs/fusion/v16/getting-started) tutorial, you already used these concepts. Here, you will focus on the mechanics and patterns behind them. ## What Makes a Type an Entity -A regular GraphQL type lives in one subgraph and is resolved entirely by that subgraph. An entity is different -- it appears in multiple subgraphs, each contributing different fields. +A regular GraphQL type lives in one subgraph and is resolved entirely by that subgraph. An entity is identified by a stable key that can be referenced across subgraphs. -For a type to work as an entity, two things must be true: +For practical use in Fusion, separate these concerns: -1. **It has key fields** that uniquely identify each instance (like `id` or `sku`). -2. **At least one subgraph provides a lookup** -- a query field that can resolve the entity given its key fields. +1. **Entity identity:** one or more key fields uniquely identify each instance, like `id` or `sku`. +2. **Entity resolution:** at least one lookup exists in the composed system so the gateway can resolve references by key. In the Products subgraph, `Product` is a full type with `id`, `name`, `price`, and other fields: @@ -31,7 +29,7 @@ public class Product } ``` -In the Reviews subgraph, `Product` is an entity stub -- a lightweight declaration with just the key field and the new fields this subgraph contributes: +In the Reviews subgraph, `Product` is an entity stub, a lightweight declaration with just the key field and the new fields this subgraph contributes: ```csharp // Reviews/Types/Product.cs @@ -74,7 +72,7 @@ public static partial class ProductQueries The `[Lookup]` attribute tells Fusion that `GetProductByIdAsync` resolves a `Product` entity by its `id` argument. The composition engine infers from this that `id` is a key field for `Product`. -Public lookups return nullable types (`Product?`). If a client passes an ID that does not exist, the lookup returns `null`. This is correct because clients can call the lookup directly with arbitrary IDs. +Lookups should return nullable entity types (`Product?`). This allows unresolved keys to return `null` and helps avoid cascading failures when one or more subgraphs cannot provide additional fields for an entity. ### Internal Lookups @@ -87,14 +85,14 @@ An internal lookup is hidden from the composite schema. Clients cannot call it. public static partial class ProductQueries { [Lookup, Internal] - public static Product GetProductById([ID] int id) + public static Product? GetProductById([ID] int id) => new(id); } ``` The `[Internal]` attribute hides this lookup from the composite schema. The gateway uses it when it needs to enter the Reviews subgraph to resolve `Product.reviews`, but clients never see or call it. -Internal lookups typically construct a stub object from the key without checking whether the entity actually exists (note the non-nullable return type `Product` and the simple `new(id)`). This is safe because the gateway only calls internal lookups during entity resolution, after another subgraph has already confirmed the entity exists. +Lookups should return nullable entity types (`Product?`) so unresolved keys can return `null` and avoid cascading failures across subgraphs. Internal lookups often still construct a stub from the key without checking existence, because the gateway calls them during entity resolution with already-known keys. ### When to Use Internal vs. Public Lookups @@ -108,9 +106,9 @@ Use an **internal lookup** when: - Your subgraph extends an entity from another subgraph (the Reviews subgraph extending `Product`) - You do not want clients to enter your subgraph through this lookup -- The lookup just constructs a stub -- it does not need to validate existence +- The lookup just constructs a stub. It does not need to validate existence. -Every entity that your subgraph references must have a lookup in at least one subgraph. If your subgraph extends `Product`, either your subgraph provides a lookup or another subgraph does. The gateway needs at least one lookup per entity to resolve cross-subgraph references. +For cross-subgraph resolution to work, the composed API needs at least one lookup per referenced entity. If your subgraph extends `Product`, either your subgraph defines that lookup or another subgraph does. ### Multiple Lookups Per Entity @@ -122,7 +120,7 @@ An entity can have multiple lookups, even in the same subgraph. This is useful w [QueryType] public static partial class UserQueries { - [Lookup, NodeResolver] + [Lookup] public static async Task GetUserById( int id, IUserByIdDataLoader userById, @@ -138,9 +136,7 @@ public static partial class UserQueries } ``` -The Accounts subgraph provides two lookups for `User`: one by `id` and one by `username`. The gateway can resolve a User reference using whichever key is available. If another subgraph references a User by username (rather than by numeric ID), the gateway uses the `GetUserByUsername` lookup. - -The `[NodeResolver]` attribute on `GetUserById` marks it as the Relay node resolver, enabling `node(id: "...")` queries for this entity. You can have at most one `[NodeResolver]` per entity type per subgraph. +The Accounts subgraph defines two lookups for `User`: one by `id` and one by `username`. The gateway can resolve a User reference using whichever key is available. If another subgraph references a User by username, the gateway uses `GetUserByUsername`. ### Argument Mapping with `@is` @@ -152,13 +148,13 @@ type Query { } ``` -The `@is` directive tells the composition engine that the `productId` argument corresponds to the `id` field on the `Person` type. When argument names match field names (which is the common case), you can omit `@is` -- the mapping is inferred automatically. +The `@is` directive tells the composition engine that the `productId` argument corresponds to the `id` field on the `Person` type. When argument names match field names, which is the common case, you can omit `@is` because the mapping is inferred automatically. ### Batch Lookups and the N+1 Problem -When the gateway resolves a list of entities (for example, fetching reviews for 10 products), it needs to call the lookup once per entity. Without batching, this creates an N+1 problem -- 1 call to get the product list, then N calls to get reviews for each product. +When the gateway resolves a list of entities (for example, fetching reviews for 10 products), it needs to call the lookup once per entity. Without batching, this creates an N+1 problem: one call to get the product list, then N calls to get reviews for each product. -HotChocolate's `[DataLoader]` attribute solves this by automatically batching entity resolution. Instead of N individual calls, the gateway sends one batched request with all N keys. +Hot Chocolate's `[DataLoader]` attribute solves this by automatically batching entity resolution. ```csharp // Products/Data/ProductDataLoader.cs @@ -253,15 +249,7 @@ Do **not** use `[Shareable]` when: A common use case: the Reviews subgraph stores a local copy of `User.name` for display purposes. Both the Accounts and Reviews subgraphs can resolve it, so both mark it `[Shareable]`. The gateway can resolve `User.name` from whichever subgraph it is already calling for that query, avoiding an extra cross-subgraph hop. -### The Incorrect "All Types Shareable by Default" Claim - -Some earlier documentation stated that "all object types are shareable by default" in Fusion. This is incorrect. The correct behavior: - -- **Key fields** (referenced by lookups) are automatically shareable -- you do not need `[Shareable]`. -- **All other fields** must be explicitly marked `[Shareable]` if defined in multiple subgraphs. -- Without `[Shareable]`, duplicate non-key fields cause a composition error. - -This matches the GraphQL Composite Schemas specification: `@shareable` permits multiple subgraphs to define the same field, and without it, a field may only exist in one subgraph. +In short: key fields used for entity identity are implicitly shareable, while duplicate non-key fields require `[Shareable]` on every definition. ## `[EntityKey]` for Explicit Key Declaration @@ -276,108 +264,13 @@ Sometimes you need to declare the key explicitly. Use `[EntityKey]` when: // Shipping/Types/Product.cs [EntityKey("id")] -public sealed record Product([property: ID] int Id) -{ - public int GetDeliveryEstimate( - string zip, - [Require("{ weight }")] int weight) - { - return CalculateShipping(zip, weight); - } -} +public sealed record Product([property: ID] int Id); ``` The `[EntityKey("id")]` attribute explicitly declares that `Product` is an entity identified by the `id` field. This is needed in the Shipping subgraph because it does not define its own lookup that would let the composition engine infer the key. The argument to `[EntityKey]` is the GraphQL field name (lowercase `"id"`), not the C# property name. -## Optimization Hints: `@provides` and `@external` - -In most cases, you do not need these directives. They are optimization hints that help the gateway avoid unnecessary cross-subgraph calls. - -### `@provides` - -The `@provides` directive (expressed in C# through `[Parent(requires: "...")]` patterns) tells the composition engine that a field resolver can supply certain subfields of its return type locally, avoiding a separate cross-subgraph call. - -For example, if the Reviews subgraph stores a local copy of the user's name alongside each review: - -```csharp -// Reviews/Types/ReviewNode.cs - -[ObjectType] -internal static partial class ReviewNode -{ - [BindMember(nameof(Review.AuthorId))] - public static async Task GetAuthorAsync( - [Parent(requires: nameof(Review.AuthorId))] Review review, - IUserByIdDataLoader userById, - CancellationToken cancellationToken) - => await userById.LoadAsync(review.AuthorId, cancellationToken); -} -``` - -When the Reviews subgraph resolves `Review.author`, it can also supply the author's `name` from its local data. The gateway knows it does not need a separate call to the Accounts subgraph just to get `User.name` -- the Reviews subgraph already has it. - -### `@external` - -The `@external` directive indicates that a field is defined and primarily resolved by another subgraph. It is used in conjunction with `@provides` to mark fields that this subgraph can supply in specific contexts but does not own. - -In HotChocolate, you typically do not need to write `@external` explicitly. The composition engine infers external fields from entity stubs and `@provides` declarations. If you are writing schemas in SDL rather than C#, you would use `@external` on fields that another subgraph owns but that your subgraph can provide as an optimization. - -## Node Pattern (Relay Global Object Identification) - -The [Relay Global Object Identification specification](https://relay.dev/graphql/objectidentification.htm) defines a standard way to fetch any entity by a globally unique ID using a `node(id: "...")` query. Fusion supports this pattern through the `[NodeResolver]` attribute and `AddGlobalObjectIdentification()`. - -### Enabling the Node Pattern - -**In each subgraph**, register global object identification: - -```csharp -builder.Services - .AddGraphQLServer() - .AddGlobalObjectIdentification() - .AddTypes(); -``` - -Then mark one lookup per entity type with `[NodeResolver]`: - -```csharp -[QueryType] -public static partial class ProductQueries -{ - [Lookup, NodeResolver] - public static async Task GetProductByIdAsync( - int id, - IProductByIdDataLoader productById, - CancellationToken cancellationToken) - => await productById.LoadAsync(id, cancellationToken); -} -``` - -`[NodeResolver]` tells HotChocolate that this lookup is the Relay node resolver for `Product`. The `node(id: "...")` query decodes the global ID, determines the entity type, and dispatches to the correct `[NodeResolver]` lookup. - -**During composition**, enable global object identification with the `--enable-global-object-identification` flag: - -```bash -nitro fusion compose \ - --source-schema-file Products/schema.graphqls \ - --source-schema-file Reviews/schema.graphqls \ - --archive gateway.far \ - --enable-global-object-identification -``` - -This adds the `node` and `nodes` query fields to the composite schema. Without this flag, `[NodeResolver]` annotations are ignored during composition. - -### When to Use It - -The node pattern is useful when: - -- Your clients use Relay or a client that expects global object identification -- You want a uniform way to refetch any entity by a single opaque ID -- The fusion-demo uses `[NodeResolver]` on every entity lookup as a standard practice - -You can have at most one `[NodeResolver]` per entity type per subgraph. If an entity has multiple lookups (by ID, by username, etc.), only the primary one should be the `[NodeResolver]`. - ## Putting It All Together Here is a summary of the patterns for the most common entity scenarios: @@ -385,7 +278,7 @@ Here is a summary of the patterns for the most common entity scenarios: **You own the entity (primary subgraph):** - Define the full type with all fields -- Add a public `[Lookup]` resolver (with `[NodeResolver]` if using Relay) +- Add a public `[Lookup]` resolver - Use `[DataLoader]` for batch resolution **You extend the entity (secondary subgraph):** @@ -395,12 +288,6 @@ Here is a summary of the patterns for the most common entity scenarios: - Use `[BindMember]` if replacing a foreign key with an entity reference - Mark any duplicated non-key fields with `[Shareable]` -**You need data from another subgraph in a resolver:** - -- Use `[Require(...)]` on the resolver argument to declare the dependency -- The gateway fetches the required data automatically -- Required arguments are hidden from the composite schema - **Your entity can be identified by multiple keys:** - Add multiple `[Lookup]` resolvers (by ID, by username, by SKU, etc.) diff --git a/website/src/docs/fusion/v16/getting-started.md b/website/src/docs/fusion/v16/getting-started.md index e47a572f6e4..d871e1780c1 100644 --- a/website/src/docs/fusion/v16/getting-started.md +++ b/website/src/docs/fusion/v16/getting-started.md @@ -1059,7 +1059,7 @@ public sealed record Product(int Id) } ``` -Both subgraphs define `Product.name` and mark it `[Shareable]`. Composition succeeds, and the gateway can resolve `name` from either subgraph depending on what else the query needs. If a query only asks for `product.name` and `product.reviews`, the gateway might fetch everything from the Reviews subgraph in a single call instead of making a separate trip to the Products subgraph. +Both subgraphs define `Product.name` and mark it `[Shareable]`. Composition succeeds, and the gateway can resolve `name` from either subgraph depending on what else the query needs. If a query only asks for `product.name` and `product.reviews`, the gateway will fetch everything from the Reviews subgraph in a single call instead of making a separate trip to the Products subgraph. ### The Rule @@ -1077,26 +1077,7 @@ You now have a working Fusion setup: two subgraphs contributing to one composed - **I want to add another subgraph to this project**: [Adding a Subgraph](/docs/fusion/v16/adding-a-subgraph) - **I want to understand entities more deeply**: [Entities and Lookups](/docs/fusion/v16/entities-and-lookups) +- **I need cross-subgraph field dependencies (`[Require]`)**: [Entities and Lookups](/docs/fusion/v16/entities-and-lookups) - **I need to deploy this**: [Deployment & CI/CD](/docs/fusion/v16/deployment-and-ci-cd) - **I need to secure this**: [Authentication and Authorization](/docs/fusion/v16/authentication-and-authorization) - **I'm coming from Apollo**: [Coming from Apollo Federation](/docs/fusion/v16/migration/coming-from-apollo-federation) - -**Other useful resources:** - -- **Use `[Require]` for cross-subgraph data dependencies.** If a field resolver needs data that lives in another subgraph, use the `[Require]` attribute on a method argument to declare the dependency. For example, a Shipping subgraph calculating delivery estimates might need a product's weight from the Products subgraph: - - ```csharp - public int GetDeliveryEstimate( - string zip, - [Require] int weight) - { - // weight is fetched from the Products subgraph automatically - return CalculateShipping(zip, weight); - } - ``` - - When the argument name matches the entity field name (like `weight` above), Hot Chocolate infers the mapping automatically, so you can use `[Require]` without parameters. If the names differ, specify the entity field explicitly: `[Require("weight")] int productWeight`. The gateway resolves the required fields from their owning subgraph before calling your resolver. The required arguments are hidden from the composite schema. Clients never see them. - -- **You may see `[NodeResolver]` in demo code alongside `[Lookup]`.** This enables Relay-style global object identification (`node(id: ...)` queries). The fusion-demo uses it on every entity lookup. It is not required for basic Fusion setups. - -- **Explore the fusion-demo repository.** The [ChilliCream fusion-demo](https://github.com/ChilliCream/fusion-demo) is a full production-style example with eight subgraphs, .NET Aspire orchestration, PostgreSQL databases, authentication, subscriptions, and CI/CD pipelines. It shows everything this guide simplified for learning purposes. From fda0e3aee542fe1c53aef9516d6bb4b9eac3809a Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 10 Mar 2026 00:17:48 +0100 Subject: [PATCH 2/6] edits --- .../docs/fusion/v16/entities-and-lookups.md | 148 +----------------- 1 file changed, 5 insertions(+), 143 deletions(-) diff --git a/website/src/docs/fusion/v16/entities-and-lookups.md b/website/src/docs/fusion/v16/entities-and-lookups.md index 52660cc53fb..01f274cf798 100644 --- a/website/src/docs/fusion/v16/entities-and-lookups.md +++ b/website/src/docs/fusion/v16/entities-and-lookups.md @@ -8,9 +8,9 @@ This page explains entity resolution in more detail: how entities are defined, h ## What Makes a Type an Entity -A regular GraphQL type lives in one subgraph and is resolved entirely by that subgraph. An entity is identified by a stable key that can be referenced across subgraphs. +An entity is a type whose instances are identified by stable key fields, such as `id` or `sku`, across the composed API. The same key refers to the same logical object in every subgraph that uses that entity. This lets one subgraph return an entity reference while another subgraph resolves additional fields for that same entity. -For practical use in Fusion, separate these concerns: +In Fusion, separate these concerns: 1. **Entity identity:** one or more key fields uniquely identify each instance, like `id` or `sku`. 2. **Entity resolution:** at least one lookup exists in the composed system so the gateway can resolve references by key. @@ -43,10 +43,6 @@ public sealed record Product([property: ID] int Id) The entity stub does not duplicate `name`, `price`, or `weight`. It only declares the key (`Id`) and the fields it adds (`reviews`). During composition, Fusion merges these into one `Product` type with all fields. The gateway resolves each field from the subgraph that owns it. -### Entity Stubs Are Not Code Duplication - -A common concern: "Am I duplicating the Product type across subgraphs?" No. The entity stub is a declaration, not a copy. It says "I know `Product` exists, identified by `Id`, and I want to contribute fields to it." The stub has no knowledge of the other subgraph's fields, does not import the other subgraph's code, and can be deployed independently. - ## Lookups A lookup is a query field that resolves an entity by its key. The gateway uses lookups to fetch entities from the subgraph that owns them. Without a lookup, the gateway has no way to enter a subgraph and resolve an entity. @@ -138,119 +134,6 @@ public static partial class UserQueries The Accounts subgraph defines two lookups for `User`: one by `id` and one by `username`. The gateway can resolve a User reference using whichever key is available. If another subgraph references a User by username, the gateway uses `GetUserByUsername`. -### Argument Mapping with `@is` - -When a lookup argument name does not match the entity's field name, use the `@is` directive (or its C# equivalent) to map them. For example, if your lookup uses `productId` as the argument name but the entity's key field is `id`: - -```graphql -type Query { - personById(productId: ID! @is(field: "id")): Person @lookup -} -``` - -The `@is` directive tells the composition engine that the `productId` argument corresponds to the `id` field on the `Person` type. When argument names match field names, which is the common case, you can omit `@is` because the mapping is inferred automatically. - -### Batch Lookups and the N+1 Problem - -When the gateway resolves a list of entities (for example, fetching reviews for 10 products), it needs to call the lookup once per entity. Without batching, this creates an N+1 problem: one call to get the product list, then N calls to get reviews for each product. - -Hot Chocolate's `[DataLoader]` attribute solves this by automatically batching entity resolution. - -```csharp -// Products/Data/ProductDataLoader.cs - -internal static class ProductDataLoader -{ - [DataLoader] - internal static async Task> GetProductByIdAsync( - IReadOnlyList ids, - ProductContext context, - CancellationToken cancellationToken) - => await context.Products - .Where(t => ids.Contains(t.Id)) - .ToDictionaryAsync(t => t.Id, cancellationToken); -} -``` - -The `[DataLoader]` attribute source-generates an `IProductByIdDataLoader` interface. When your lookup uses this DataLoader, the gateway automatically batches entity resolution: - -```csharp -[Lookup] -public static async Task GetProductByIdAsync( - int id, - IProductByIdDataLoader productById, - CancellationToken cancellationToken) - => await productById.LoadAsync(id, cancellationToken); -``` - -Even though the lookup accepts a single `id`, the DataLoader collects all requested IDs and executes a single batch query. This turns N+1 individual database queries into one query with a `WHERE id IN (...)` clause. - -Always use DataLoaders for lookup resolvers that hit a database or external service. Without them, cross-subgraph queries on lists will generate one database query per entity, which degrades performance significantly as the list grows. - -## Field Ownership and `[Shareable]` - -When multiple subgraphs define the same type, Fusion needs to know which subgraph owns each field. The rules are straightforward: - -### Key Fields Are Automatically Shareable - -Fields that serve as entity keys (referenced by lookups) are implicitly shareable. You do not need to add `[Shareable]` to key fields. Both the Products and Reviews subgraphs define `Product.id`, and this composes without conflict because `id` is a key field. - -### Non-Key Fields Must Be Unique or Explicitly Shareable - -By default, a non-key field must appear in exactly one subgraph. If two subgraphs define the same non-key field on the same type, composition fails with an error. - -For example, if both the Accounts subgraph and the Reviews subgraph define `User.name`: - -```csharp -// Accounts/Types/UserNode.cs - -[ObjectType] -public static partial class UserNode -{ - [Shareable] - public static string GetName([Parent] User user) - => user.Name!; -} -``` - -```csharp -// Reviews/Types/UserNode.cs - -[ObjectType] -internal static partial class UserNode -{ - [Shareable] - public static string GetName([Parent] User user) - => user.Name!; -} -``` - -Both subgraphs mark `GetName` with `[Shareable]`. This tells Fusion: "this field is intentionally defined in multiple subgraphs, and all definitions return the same data." The gateway can resolve the field from whichever subgraph is most convenient for a given query. - -If you forget `[Shareable]` on any definition, composition fails: - -```text -Error: Field "User.name" is defined in subgraphs "accounts-api" and "reviews-api" -without [Shareable]. Mark the field as [Shareable] in all subgraphs that define it, -or remove the duplicate definition. -``` - -### When to Use `[Shareable]` - -Mark a field as `[Shareable]` when: - -- Multiple subgraphs genuinely return the same data for this field -- You want the gateway to have the flexibility to resolve it from either subgraph - -Do **not** use `[Shareable]` when: - -- The fields return different data (use different field names instead) -- Only one subgraph should own the field (do not define it in other subgraphs) - -A common use case: the Reviews subgraph stores a local copy of `User.name` for display purposes. Both the Accounts and Reviews subgraphs can resolve it, so both mark it `[Shareable]`. The gateway can resolve `User.name` from whichever subgraph it is already calling for that query, avoiding an extra cross-subgraph hop. - -In short: key fields used for entity identity are implicitly shareable, while duplicate non-key fields require `[Shareable]` on every definition. - ## `[EntityKey]` for Explicit Key Declaration In most cases, you do not need to declare entity keys explicitly. The composition engine infers keys from your `[Lookup]` resolvers. If `GetProductById(int id)` is marked `[Lookup]`, Fusion infers that `id` is a key field for `Product`. @@ -271,30 +154,9 @@ The `[EntityKey("id")]` attribute explicitly declares that `Product` is an entit The argument to `[EntityKey]` is the GraphQL field name (lowercase `"id"`), not the C# property name. -## Putting It All Together - -Here is a summary of the patterns for the most common entity scenarios: - -**You own the entity (primary subgraph):** - -- Define the full type with all fields -- Add a public `[Lookup]` resolver -- Use `[DataLoader]` for batch resolution - -**You extend the entity (secondary subgraph):** - -- Create an entity stub with just the key field and your new fields -- Add an internal `[Lookup, Internal]` resolver -- Use `[BindMember]` if replacing a foreign key with an entity reference -- Mark any duplicated non-key fields with `[Shareable]` - -**Your entity can be identified by multiple keys:** - -- Add multiple `[Lookup]` resolvers (by ID, by username, by SKU, etc.) -- The gateway uses whichever key is available - ## Next Steps -- **Need cross-subgraph field dependencies?** The `[Require]` attribute enables resolvers to depend on data from other subgraphs. Cross-subgraph data dependencies, including complex field mapping, will be covered in detail in future documentation. -- **Want to understand composition rules?** See [Composition](/docs/fusion/v16/composition) for how types are merged, what causes composition errors, and how to fix them. +- **Need field ownership rules?** See [Composition](/docs/fusion/v16/composition) for how field ownership, `@shareable`, and composition validation work. +- **Need argument mapping and cross-subgraph dependencies?** The `@is` and `@require` directives are covered in dedicated pages. +- **Need runtime performance guidance?** See Hot Chocolate docs for DataLoader and batching patterns used inside lookup resolvers. - **Ready to go to production?** See [Authentication and Authorization](/docs/fusion/v16/authentication-and-authorization) for securing your gateway and subgraphs, or [Deployment and CI/CD](/docs/fusion/v16/deployment-and-ci-cd) for setting up independent subgraph deployments. From 469a686cf9c97aa4f8e897e9f1b33d2abd08503e Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 10 Mar 2026 00:33:05 +0100 Subject: [PATCH 3/6] edits --- .../docs/fusion/v16/entities-and-lookups.md | 44 +++++++++---------- 1 file changed, 22 insertions(+), 22 deletions(-) diff --git a/website/src/docs/fusion/v16/entities-and-lookups.md b/website/src/docs/fusion/v16/entities-and-lookups.md index 01f274cf798..ac8a7991c39 100644 --- a/website/src/docs/fusion/v16/entities-and-lookups.md +++ b/website/src/docs/fusion/v16/entities-and-lookups.md @@ -4,44 +4,44 @@ title: "Entities and Lookups" Entities are the mechanism that makes distributed GraphQL work. They are types with stable keys that can be referenced and resolved across subgraphs. For example, the Products subgraph defines the `Product` type, and the Reviews subgraph contributes the `reviews` field to `Product`. The Accounts subgraph defines the `User` type, and other subgraphs can contribute additional fields to `User`. Without entities, each subgraph would be an isolated API. With entities, those subgraphs compose into one unified API. -This page explains entity resolution in more detail: how entities are defined, how lookups resolve them across subgraphs, and how field ownership is enforced. If you completed the [Getting Started](/docs/fusion/v16/getting-started) tutorial, you already used these concepts. Here, you will focus on the mechanics and patterns behind them. +This page explains entity resolution in more detail: how entities are defined and how lookups resolve them across subgraphs. If you completed the [Getting Started](/docs/fusion/v16/getting-started) tutorial, you already used these concepts. Here, you will focus on the mechanics and patterns behind them. ## What Makes a Type an Entity -An entity is a type whose instances are identified by stable key fields, such as `id` or `sku`, across the composed API. The same key refers to the same logical object in every subgraph that uses that entity. This lets one subgraph return an entity reference while another subgraph resolves additional fields for that same entity. +A type is not an entity because it appears in multiple subgraphs. It is an entity because it has stable key-based identity. An entity is a type with one or more key fields that uniquely identify an instance across multiple subgraphs. Those key fields form the contract between subgraphs: one subgraph can return an entity reference by key, and another subgraph can use that key to resolve additional fields for the same instance. -In Fusion, separate these concerns: +In practice, two requirements matter: 1. **Entity identity:** one or more key fields uniquely identify each instance, like `id` or `sku`. -2. **Entity resolution:** at least one lookup exists in the composed system so the gateway can resolve references by key. +2. **Entity resolution:** at least one lookup is available so the gateway can resolve references by key. -In the Products subgraph, `Product` is a full type with `id`, `name`, `price`, and other fields: - -```csharp -// Products/Data/Product.cs +```graphql +# Products subgraph +type Product { + id: ID! + name: String! +} -public class Product -{ - public int Id { get; set; } - public required string Name { get; set; } - public double Price { get; set; } - public int Weight { get; set; } +type Query { + productById(id: ID!): Product @lookup } ``` -In the Reviews subgraph, `Product` is an entity stub, a lightweight declaration with just the key field and the new fields this subgraph contributes: +Another subgraph can reuse the same key and contribute fields. -```csharp -// Reviews/Types/Product.cs +```graphql +# Reviews subgraph +type Product { + id: ID! + reviews: [Review!]! +} -public sealed record Product([property: ID] int Id) -{ - public List GetReviews() - => ReviewRepository.GetByProductId(Id); +type Query { + productById(id: ID!): Product @lookup @internal } ``` -The entity stub does not duplicate `name`, `price`, or `weight`. It only declares the key (`Id`) and the fields it adds (`reviews`). During composition, Fusion merges these into one `Product` type with all fields. The gateway resolves each field from the subgraph that owns it. +In these examples, `id` is the key and `@lookup` defines how `Product` is resolved by that key. The Reviews lookup is internal, so clients cannot call it directly, but the gateway can use it to enter the Reviews subgraph and resolve `reviews`. ## Lookups From 3b6691102d50b9a551e96945c9a62710c07428ee Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 10 Mar 2026 09:13:17 +0100 Subject: [PATCH 4/6] edits --- .../docs/fusion/v16/entities-and-lookups.md | 254 ++++++++++++++++-- 1 file changed, 229 insertions(+), 25 deletions(-) diff --git a/website/src/docs/fusion/v16/entities-and-lookups.md b/website/src/docs/fusion/v16/entities-and-lookups.md index ac8a7991c39..f1e0b3848b1 100644 --- a/website/src/docs/fusion/v16/entities-and-lookups.md +++ b/website/src/docs/fusion/v16/entities-and-lookups.md @@ -45,15 +45,29 @@ In these examples, `id` is the key and `@lookup` defines how `Product` is resolv ## Lookups -A lookup is a query field that resolves an entity by its key. The gateway uses lookups to fetch entities from the subgraph that owns them. Without a lookup, the gateway has no way to enter a subgraph and resolve an entity. +A lookup is a query field that resolves an entity by its key. The gateway uses lookups to fetch additional fields for entities. Depending on the requested fields and available routes, it can use any subgraph that provides those fields and a compatible lookup path. Without a lookup, the gateway has no way to enter a subgraph and resolve an entity. ### Public Lookups A public lookup serves two purposes: clients can call it directly as a query field, and the gateway uses it for entity resolution behind the scenes. -```csharp -// Products/Types/ProductQueries.cs +**GraphQL schema** + +```graphql +type Query { + productById(id: ID!): Product @lookup +} +``` + +The `@lookup` directive marks `productById` as a lookup for `Product`. Because the argument is named `id`, composition maps it to the `Product.id` key field. Cross-subgraph transitions depend on this mapping: the source subgraph must provide the key, and the target subgraph must expose a lookup that accepts that key. + +Lookups must return nullable entity types. In GraphQL, that means `Product` instead of `Product!`. In C#, use a nullable return type like `Product?`. This allows unresolved keys to return `null` and helps avoid cascading failures when one or more subgraphs cannot provide additional fields for an entity. +In Hot Chocolate, the `@lookup` directive is represented by the `[Lookup]` attribute. + +**C# resolver** + +```csharp [QueryType] public static partial class ProductQueries { @@ -66,17 +80,46 @@ public static partial class ProductQueries } ``` -The `[Lookup]` attribute tells Fusion that `GetProductByIdAsync` resolves a `Product` entity by its `id` argument. The composition engine infers from this that `id` is a key field for `Product`. +If the argument name does not match a field name on the type, the `@is` directive must be used to map the argument to the key field. -Lookups should return nullable entity types (`Product?`). This allows unresolved keys to return `null` and helps avoid cascading failures when one or more subgraphs cannot provide additional fields for an entity. +```graphql +type Query { + product(productId: ID! @is(field: "id")): Product @lookup +} +``` + +In Hot Chocolate, you can use the `[Is]` attribute with `nameof`. + +```csharp +[QueryType] +public static partial class ProductQueries +{ + [Lookup] + public static async Task GetProductAsync( + [Is(nameof(Product.Id))] int productId, + IProductByIdDataLoader productById, + CancellationToken cancellationToken) + => await productById.LoadAsync(productId, cancellationToken); +} +``` ### Internal Lookups -An internal lookup is hidden from the composite schema. Clients cannot call it. It exists only for the gateway to use during entity resolution. +An internal lookup is hidden from the composite schema. Clients cannot call it directly. It exists only for the gateway to use during entity resolution. -```csharp -// Reviews/Types/ProductQueries.cs +**GraphQL schema** + +```graphql +type Query { + productById(id: ID!): Product @internal @lookup +} +``` + +The `@internal` directive tells the composition to exclude this lookup from the public composite schema. The gateway can still use it when it needs to enter the Reviews subgraph to resolve `Product.reviews`, but clients never see or call it. + +**C# resolver** +```csharp [QueryType] public static partial class ProductQueries { @@ -86,33 +129,54 @@ public static partial class ProductQueries } ``` -The `[Internal]` attribute hides this lookup from the composite schema. The gateway uses it when it needs to enter the Reviews subgraph to resolve `Product.reviews`, but clients never see or call it. +You can also group internal lookups under a dedicated internal root field. This keeps internal routing entry points in one place and avoids repeating `@internal` on every lookup field. + +**GraphQL schema (grouped internal lookups)** + +```graphql +type Query { + internalLookups: InternalLookups @internal +} + +type InternalLookups @internal { + productByTenantAndSku(tenantId: ID!, sku: String!): Product @lookup +} +``` -Lookups should return nullable entity types (`Product?`) so unresolved keys can return `null` and avoid cascading failures across subgraphs. Internal lookups often still construct a stub from the key without checking existence, because the gateway calls them during entity resolution with already-known keys. +In this pattern, clients cannot access `internalLookups` from the composite schema, but the gateway can still use nested `@lookup` fields for internal transitions. ### When to Use Internal vs. Public Lookups Use a **public lookup** when: -- Your subgraph is the primary owner of the entity (the Products subgraph for `Product`, the Accounts subgraph for `User`) +- Your subgraph is the primary owner of the entity. For example, the Products subgraph owns `Product`, and the Accounts subgraph owns `User`. - Clients should be able to query for this entity directly from your subgraph - The lookup validates that the entity exists and returns `null` if it does not Use an **internal lookup** when: -- Your subgraph extends an entity from another subgraph (the Reviews subgraph extending `Product`) +- Your subgraph extends an entity and merely contributes extra fields to it, for example the Reviews subgraph adds the `reviews` field to the `Product` entity. - You do not want clients to enter your subgraph through this lookup -- The lookup just constructs a stub. It does not need to validate existence. +- The lookup just constructs a stub. It does not validate the existence of the entity. -For cross-subgraph resolution to work, the composed API needs at least one lookup per referenced entity. If your subgraph extends `Product`, either your subgraph defines that lookup or another subgraph does. +For cross-subgraph resolution to work, each subgraph that extends an entity by contributing fields must provide a lookup for that entity. For example, if a subgraph extends `Product` but has no `Product` lookup, transitions into that subgraph are unsatisfiable. ### Multiple Lookups Per Entity -An entity can have multiple lookups, even in the same subgraph. This is useful when an entity can be identified by different keys. +An entity can have multiple lookups, even in the same subgraph. This is useful when an entity can be identified by different keys. It is especially helpful when different subgraphs reference the same entity through different keys, for example `User.id` in one place and `User.username` in another. By providing both lookups, the gateway can transition into the target subgraph from either reference shape. -```csharp -// Accounts/Types/UserQueries.cs +**GraphQL schema** + +```graphql +type Query { + userById(id: ID!): User @lookup + userByUsername(username: String!): User @lookup +} +``` +**C# resolver** + +```csharp [QueryType] public static partial class UserQueries { @@ -134,25 +198,165 @@ public static partial class UserQueries The Accounts subgraph defines two lookups for `User`: one by `id` and one by `username`. The gateway can resolve a User reference using whichever key is available. If another subgraph references a User by username, the gateway uses `GetUserByUsername`. -## `[EntityKey]` for Explicit Key Declaration +With more modern GraphQL servers you can also use the finder pattern with the `@oneOf` directive. -In most cases, you do not need to declare entity keys explicitly. The composition engine infers keys from your `[Lookup]` resolvers. If `GetProductById(int id)` is marked `[Lookup]`, Fusion infers that `id` is a key field for `Product`. +```graphql +type Query { + user(by: UserByInput! @is(field: "{ id } | { username }")): User @lookup +} -Sometimes you need to declare the key explicitly. Use `[EntityKey]` when: +input UserByInput @oneOf { + id: ID + username: String +} +``` -- Your subgraph extends an entity but does not have its own lookup for it -- You want to be explicit about which fields form the key +In this case we use the `@is` directive with the choice operator `|` to signal to Fusion that it can use this lookup either with the `id` or the `username` as a key. + +### Composite Keys + +Some entities are identified by a combination of fields instead of a single field. In that case, the lookup arguments together form the key. + +**GraphQL schema** + +```graphql +# Inventory subgraph +type Product { + tenantId: ID! + sku: String! + inStock: Boolean! +} + +type Query { + productByTenantAndSku(tenantId: ID!, sku: String!): Product @lookup +} +``` + +**C# resolver** ```csharp -// Shipping/Types/Product.cs +[QueryType] +public static partial class ProductQueries +{ + [Lookup] + public static Product? GetProductByTenantAndSku( + int tenantId, + string sku) + => ProductRepository.GetByTenantAndSku(tenantId, sku); +} +``` + +Here, `tenantId` and `sku` are both required to identify `Product`. During planning, Fusion can transition to this lookup only when both key values are available. + +If the lookup arguments do not match entity field names directly, you can map them with the `@is` directive and even pull up fields. + +**GraphQL schema with per-argument mapping** + +```graphql +type Product { + sku: String! + inStock: Boolean! + tenant: Tenant +} + +type Tenant { + id: ID! +} + +type Query { + product( + tenantId: ID! @is(field: "tenant.id") + sku: String! @is(field: "sku") + ): Product @lookup +} +``` + +**GraphQL schema with input-object mapping** + +```graphql +type Product { + sku: String! + inStock: Boolean! + tenant: Tenant +} + +type Tenant { + id: ID! +} + +input ProductKeyInput { + tenantId: ID! + sku: String! +} + +type Query { + product( + key: ProductKeyInput! @is(field: "{ tenantId: tenant.id, sku }") + ): Product @lookup +} +``` + +Both variants describe the same composite key. The first maps each argument explicitly. The second maps the input object fields in one selection map. + +> The FieldSelectionMap syntax from the Composite Schemas specification supports more advanced argument-to-field mappings for lookups. For the full grammar and examples, see the [Composite Schemas specification](https://graphql.github.io/composite-schemas-spec/draft/#sec-Appendix-A-Specification-of-FieldSelectionMap-Scalar). + +## Explicit Key Declaration + +In most cases, you do not need to declare entity keys explicitly. The composition engine infers keys from your lookup fields. + +Sometimes you need or want to declare the key explicitly. Use the `@key` directive when: + +- Your subgraph extends an entity but does not have its own lookup for it +- You want to be explicit about which fields form the key on the entity itself + +**GraphQL schema** +```graphql +type Product @key(fields: "id") { + id: ID! +} +``` + +**C# type declaration** + +```csharp [EntityKey("id")] public sealed record Product([property: ID] int Id); ``` -The `[EntityKey("id")]` attribute explicitly declares that `Product` is an entity identified by the `id` field. This is needed in the Shipping subgraph because it does not define its own lookup that would let the composition engine infer the key. +The `@key(fields: "id")` directive explicitly declares that `Product` is identified by the `id` field. This is useful in a subgraph that extends `Product` but does not define its own lookup, so composition cannot infer the key from lookup arguments. + +The `fields` value uses GraphQL field names, not C# member names. + +An entity can have multiple keys. Each `@key` directive on a type represents one key. + +**GraphQL schema with scalar composite key** + +```graphql +type Product @key(fields: "id") @key(fields: "sku category") { + id: ID! + sku: String + category: String +} +``` + +**GraphQL schema with nested composite key** + +```graphql +type Product @key(fields: "id") @key(fields: "sku tenant { id }") { + id: ID! + sku: String + tenant: Tenant +} + +type Tenant { + id: ID! +} +``` + +## GraphQL Global Object Identification Specification -The argument to `[EntityKey]` is the GraphQL field name (lowercase `"id"`), not the C# property name. +If your subgraphs implement the GraphQL Global Object Identification Specification that provides the `node` on the query ## Next Steps From 14aa81ad4d813ae383c04b3de2318ac0cabbe727 Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 10 Mar 2026 09:26:49 +0100 Subject: [PATCH 5/6] edits --- .../docs/fusion/v16/entities-and-lookups.md | 47 ++++++++++++++++++- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/website/src/docs/fusion/v16/entities-and-lookups.md b/website/src/docs/fusion/v16/entities-and-lookups.md index f1e0b3848b1..a43b2da16a0 100644 --- a/website/src/docs/fusion/v16/entities-and-lookups.md +++ b/website/src/docs/fusion/v16/entities-and-lookups.md @@ -143,6 +143,25 @@ type InternalLookups @internal { } ``` +**C# declaration** + +```csharp +[QueryType] +public static partial class Query +{ + [Internal] + public static InternalLookups GetInternalLookups { get; } = new(); +} + +[Internal, ObjectType] +public partial class InternalLookups +{ + [Lookup] + public Product? GetProductByTenantAndSku(int tenantId, string sku) + => ProductRepository.GetByTenantAndSku(tenantId, sku); +} +``` + In this pattern, clients cannot access `internalLookups` from the composite schema, but the gateway can still use nested `@lookup` fields for internal transitions. ### When to Use Internal vs. Public Lookups @@ -354,9 +373,33 @@ type Tenant { } ``` -## GraphQL Global Object Identification Specification +## GraphQL Global Object Identification + +If your subgraphs implement GraphQL Global Object Identification, with a `node` field on `Query` and a `Node` interface, you already have a strong entity identity contract. You can build on this by using `node` as a lookup and treating types that implement `Node` as entities. + +**GraphQL schema** + +```graphql +type Query { + node(id: ID!): Node @lookup +} + +interface Node @key(fields: "id") { + id: ID! +} +``` + +If you are using Hot Chocolate as a subgraph, set `MarkNodeFieldAsLookup` and Hot Chocolate will mark the generated `node` field as a lookup automatically. + +**C# configuration** + +```csharp +builder + .AddGraphQL() + .AddGlobalObjectIdentification(o => o.MarkNodeFieldAsLookup = true); +``` -If your subgraphs implement the GraphQL Global Object Identification Specification that provides the `node` on the query +> If GraphQL Global Object Identification is enabled at the gateway level, every entity resolvable through the `node` field becomes a public entry point. Use explicit internal lookups for entities you do not want exposed as public entry points. ## Next Steps From a4cce78662cbd6b965c0d1716ccdb45a6534ddd5 Mon Sep 17 00:00:00 2001 From: Michael Staib Date: Tue, 10 Mar 2026 09:44:15 +0100 Subject: [PATCH 6/6] edits --- .../docs/fusion/v16/entities-and-lookups.md | 2 + .../entities-public-vs-internal-lookup.drawio | 50 ++++++++++++++++++ .../entities-public-vs-internal-lookup.png | Bin 0 -> 107083 bytes 3 files changed, 52 insertions(+) create mode 100644 website/src/docs/shared/fusion/entities-public-vs-internal-lookup.drawio create mode 100644 website/src/docs/shared/fusion/entities-public-vs-internal-lookup.png diff --git a/website/src/docs/fusion/v16/entities-and-lookups.md b/website/src/docs/fusion/v16/entities-and-lookups.md index a43b2da16a0..624de302956 100644 --- a/website/src/docs/fusion/v16/entities-and-lookups.md +++ b/website/src/docs/fusion/v16/entities-and-lookups.md @@ -166,6 +166,8 @@ In this pattern, clients cannot access `internalLookups` from the composite sche ### When to Use Internal vs. Public Lookups +![Public vs internal lookup visibility: clients can call public lookups, only the gateway can call internal lookups](../../shared/fusion/entities-public-vs-internal-lookup.png) + Use a **public lookup** when: - Your subgraph is the primary owner of the entity. For example, the Products subgraph owns `Product`, and the Accounts subgraph owns `User`. diff --git a/website/src/docs/shared/fusion/entities-public-vs-internal-lookup.drawio b/website/src/docs/shared/fusion/entities-public-vs-internal-lookup.drawio new file mode 100644 index 00000000000..76d10cff61d --- /dev/null +++ b/website/src/docs/shared/fusion/entities-public-vs-internal-lookup.drawio @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/website/src/docs/shared/fusion/entities-public-vs-internal-lookup.png b/website/src/docs/shared/fusion/entities-public-vs-internal-lookup.png new file mode 100644 index 0000000000000000000000000000000000000000..be3bf7c95221cbe7d2fb961fd4425f2a4db4df7f GIT binary patch literal 107083 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

~IhVH)hYs;r% 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 literal 0 HcmV?d00001