All Projects → gmac → Schema Stitching Handbook

gmac / Schema Stitching Handbook

Licence: mit
Guided examples exploring GraphQL Tools v6+ Schema Stitching

Programming Languages

javascript
184084 projects - #8 most used programming language

Labels

Projects that are alternatives of or similar to Schema Stitching Handbook

Thunderhub
ThunderHub LND Lightning Node Manager in your Browser
Stars: ✭ 131 (-4.38%)
Mutual labels:  graphql
Webspace
This is the repo which hosts the front end for people.amfoss.in
Stars: ✭ 134 (-2.19%)
Mutual labels:  graphql
Subzero Starter Kit
Starter Kit and tooling for authoring GraphQL/REST API backends with subZero
Stars: ✭ 136 (-0.73%)
Mutual labels:  graphql
Next Advanced Apollo Starter
Advanced, but minimalistic Next.js pre-configured starter with focus on DX
Stars: ✭ 131 (-4.38%)
Mutual labels:  graphql
Graphql Postgres Subscriptions
A graphql subscriptions implementation using postgres and apollo's graphql-subscriptions
Stars: ✭ 133 (-2.92%)
Mutual labels:  graphql
Graphql Mqtt Subscriptions
graphql-subscriptions implementation for MQTT protocol
Stars: ✭ 133 (-2.92%)
Mutual labels:  graphql
Join Monster Graphql Tools Adapter
Use Join Monster to fetch your data with Apollo Server.
Stars: ✭ 130 (-5.11%)
Mutual labels:  graphql
Graphql Go Example
Example GraphQL API implemented in Go and backed by Postgresql
Stars: ✭ 135 (-1.46%)
Mutual labels:  graphql
Python Graphql Client
Simple GraphQL client for Python 2.7+
Stars: ✭ 133 (-2.92%)
Mutual labels:  graphql
Saleor
A modular, high performance, headless e-commerce platform built with Python, GraphQL, Django, and React.
Stars: ✭ 14,720 (+10644.53%)
Mutual labels:  graphql
Gatsby Blog Starter Kit
A simple starter kit for a static blog created with Gatsby
Stars: ✭ 131 (-4.38%)
Mutual labels:  graphql
Frontend
🌏 The front-end application code for https://buildkite.com
Stars: ✭ 132 (-3.65%)
Mutual labels:  graphql
Graphql Compose Examples
Live examples of schemas builded with graphql-compose
Stars: ✭ 134 (-2.19%)
Mutual labels:  graphql
Apollo Federation Ruby
A Ruby implementation of Apollo Federation
Stars: ✭ 131 (-4.38%)
Mutual labels:  graphql
Graphql Api For Wp
[READ ONLY] GraphQL API for WordPress
Stars: ✭ 136 (-0.73%)
Mutual labels:  graphql
Graphbrainz
A fully-featured GraphQL interface for the MusicBrainz API.
Stars: ✭ 130 (-5.11%)
Mutual labels:  graphql
Aws Mobile Appsync Events Starter React Native
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 134 (-2.19%)
Mutual labels:  graphql
Framework
Strongly-typed JavaScript object with support for validation and error handling.
Stars: ✭ 136 (-0.73%)
Mutual labels:  graphql
Graphql Cli
📟 Command line tool for common GraphQL development workflows
Stars: ✭ 1,814 (+1224.09%)
Mutual labels:  graphql
Gatsby Starter Foundation
A starter to launch your blazing fast personal website and a blog, Built with Gatsby and Netlify CMS. Made with ❤ by Stackrole
Stars: ✭ 135 (-1.46%)
Mutual labels:  graphql

Schema Stitching Handbook

Guided examples of Schema Stitching doing awesome things. Focuses on the new (GraphQL Tools v6+) stitching using type merging, not legacy Apollo Stitching.

Table of Contents

Foundation

  • Combining local and remote schemas

    • Adding a locally-executable schema.
    • Adding a remote schema, fetched via introspection.
    • Adding a remote schema, fetched from a custom SDL service.
    • Avoiding schema conflicts using transforms.
    • Authorization headers.
    • Basic error handling.
  • Mutations & subscriptions

    • Adding a remote mutation service.
    • Adding a remote subscription service.
    • Adding a subscriber proxy.
  • Single-record type merging

    • Type merging using single-record queries.
    • Query/execution batching.
  • Array-batched type merging

    • Type merging using array queries.
    • Handling array errors.
    • Nullability & error remapping.
  • Nullable merges

    • Selecting nullability for merged fields.
    • Returning nullable and not-nullable results.
  • Cross-service interfaces

    • Distributing a GraphQL interface across services.
  • Merged types with multiple keys

    • Configuring multiple key access for a merged type.
  • Computed fields

    • Configuring computed fields.
    • Sending complex inputs to subservices.
    • Normalizing subservice deprecations in the gateway.
  • Stitching directives SDL

    • @key directive for type-level selection sets.
    • @merge directive for type merging services.
    • @computed directive for computed fields.
    • @canonical directive for preferred element definitions.

Architecture

  • Hot schema reloading

    • Hot reload of the combined gateway schema (no server restart).
    • Polling for remote subschema changes.
    • Mutations for adding/removing remote subservices.
    • Handling subservice request timeouts.
  • Versioning schema releases

    • Using GitHub API to manage a simple schema registry.
    • Hot reloading from a remote Git registry.
    • Running development and production environments.
  • Continuous Integration (CI) testing

    • Adding test coverage to a stitched schema.
    • Mocking subservices as local test fixtures.
  • Public and private APIs

    • Filtering unwanted fields from the final stitched schema.
    • Serving public (filtered) and private (unfiltered) API versions.

Other Integrations

  • Federation services

    • Integrating Apollo Federation services into a stitched schema.
    • Fetching and parsing Federation SDLs.
  • Subservice languages

    • JavaScript schemas created with:

      • graphql-js
      • nexus
      • type-graphql
    • Ruby schemas created with:

      • Class-based definitions
      • Parsed definitions string

Appendices

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].