GraphQL Field Change Handler for Schema Resolver Synchronization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

GraphQL APIs face errors when data source field names are changed, leading to mismatches between the GraphQL schema and field resolvers, resulting in errors for end customers, and the only current solution is rolling back updates, which negates the purpose of the changes.

Innovation Solution

An automatic GraphQL data source field change handler is implemented, which detects changes to metadata in data sources, updates the GraphQL schema and field resolvers, and handles client requests by replacing old field names with new ones, ensuring seamless query execution without errors.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If data source field names are updated to improve data accuracy, then data source metadata becomes more accurate, but GraphQL schema and field resolvers become mismatched causing errors

Engineering Contradiction:
Improvedata source field name accuracyVSAvoidGraphQL API reliability
Core Design Contradiction:
Measurement precisionVSReliability

Solution Approach 1:

The system performs preliminary actions by detecting field name changes in data sources before they cause GraphQL API errors. The monitoring mechanism proactively identifies mismatches between data source metadata and GraphQL schema, allowing the system to update the schema and resolvers in advance, preventing errors before they reach end customers.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements a feedback loop where the monitoring mechanism continuously checks for field name changes in data sources. When changes are detected, the system automatically updates the GraphQL schema and field resolvers, then verifies the updates. This closed-loop feedback ensures data accuracy improvements are propagated while maintaining API reliability.

Inventive Principle:
Principle #23Feedback

2Adaptability or versatility

If GraphQL schema is updated to match new field names, then data source compatibility is improved, but end customer queries using old field names continue to fail

Engineering Contradiction:
ImproveGraphQL schema adaptabilityVSAvoidend customer query compatibility
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The system introduces an intermediary mechanism - the field name mapping and translation layer. When end customer queries with old field names are received, the system translates these old field names to the new field names through the mapping mechanism. This intermediary translation layer allows the GraphQL schema to adapt to new field names while maintaining ease of operation for end customers using legacy queries.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system performs preliminary action by pre-establishing field name mappings before end customers experience errors. When field name changes are detected in data sources, the system proactively creates and stores the mapping between old and new field names, so that when end customer queries arrive, the translation is already in place, ensuring seamless compatibility.

Inventive Principle:
Principle #10Preliminary action

3Ease of operation

If manual rollback is performed to maintain query compatibility, then end customer queries continue to work, but the data source updates are negated

Engineering Contradiction:
Improvequery compatibilityVSAvoiddata source field name accuracy
Core Design Contradiction:
Ease of operationVSMeasurement precision

Solution Approach 1:

Instead of rolling back data source updates, the system introduces a field name mapping intermediary layer. This mapping layer acts as a buffer that allows the data source to maintain its updated field names while translating them back to the original field names that end customers use in their queries. This eliminates the need for manual rollback while preserving both data accuracy and query compatibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system segments the field name reference into two separate layers: the data source layer with new field names and the GraphQL API layer with old field names. The field mapping mechanism bridges these segmented layers, allowing each layer to maintain its own field names independently. This segmentation enables data source updates to proceed while query compatibility is maintained through the mapping layer.

Inventive Principle:
Principle #1Segmentation

4Loss of time

If automatic field change detection is implemented, then schema update timeliness is improved, but system complexity increases

Engineering Contradiction:
Improveschema update delayVSAvoidfield change monitoring system complexity
Core Design Contradiction:
Loss of timeVSDevice complexity

Solution Approach 1:

The system implements self-service by enabling the GraphQL schema to automatically detect and respond to field name changes in data sources. The monitoring mechanism autonomously identifies changes, triggers schema updates, and manages field mappings without requiring manual intervention. This self-service capability reduces schema update delay while the automated nature of the process helps manage system complexity by eliminating manual operations.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system monitors changes in data source metadata parameters (field names) and automatically adjusts the GraphQL schema parameters in response. This parameter change detection and propagation mechanism reduces update delay by automatically responding to field name changes. The complexity is managed by focusing monitoring on specific critical parameters (field names) rather than all possible data source attributes.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS20230289339A1Automatic graphql data source field change handler
Publication Date: 2023.09.14 SALESFORCE INC
  • US20230289339A1 patent drawing
  • US20230289339A1 patent drawing
  • US20230289339A1 patent drawing

AI summary

A GraphQL server stores schemas for GraphQL APIs in a schema store, the schemas defining operations, types and fields of the APIs. Field resolvers are associated with the fields of the APIs to specify which of the data source is to be used to fulfill an API query request. When an event is detected that makes changes to a schema of any of the data sources, the schema store is accessed and an old field name is automatically replaced with a new field name in both the retrieved schemas and the field resolvers mapped to the retrieved schemas. Responsive to receiving an API request, it is determined whether the request has any field names that do not match the corresponding schema, and if so, the old field name is replaced with the new field name in the request.