dotansimha / graphql-yoga

🧘 Rewrite of a fully-featured GraphQL Server with focus on easy setup, performance & great developer experience. The core of Yoga implements WHATWG Fetch API and can run/deploy on any JS environment.
https://the-guild.dev/graphql/yoga-server
MIT License
8.25k stars 574 forks source link

Roadmap #1358

Closed theguild-bot closed 1 year ago

theguild-bot commented 2 years ago

This page is synced automatically from The Guild's Notion Notion page URL: https://www.notion.so/Roadmap-232f99f86aa34383bac5d72e53aa24b7

At The Guild we’ve decided to work as much as we can in public, that’s why we are opening the roadmaps for all of our projects.

The goals for this are:

  1. So you will know what we are working on, what we see as a higher priority, and know what to expect from our projects in the future
  2. So you can share your opinions and thoughts about what we do and influence our decisions
  3. So you can join us and contribute to our efforts!

v3 - Released!

The progress of version 3 is tracked on branch v3. Canary releases will be released from that branch. Once the branch becomes stable it will be merged into master and we will release the stable version 3 to npm.

v3.x

Things that might go into v3:

Making Envelop Schema Agnostic

### Reasons to do that 

- To improve Conductor execution and performance through Mesh
    - Remote executor and avoid wrapping a clean executor function
- To remove the coupling to specific GraphQL schema implementation (resolvers)
    - Any other alternative executing strategies that don't follow the default GraphQL-JS execution algorithm
    - Resolvers are just one way of implementing the schema, some execution engines might not use it (Benjie’s stuff, GraphQL-Tools executor, Federation)

### Technical Path

1. Drop `onResolverCalled` from `envelop` API
2. Drop `onSchemaChange` , `setSchema` APIs
    1. @ardatan should this be `onExecuteFnChnage` instead? some plugins like `useExtendedValidation` might need to things like build `TypeInfo` (and we wish to make sure it happens once, because of performance)
    2. Should we introduce an alternative Envelop API for wrapping the `execute` function?
3. Make sure all plugins that needs access to the schema implements the schema access through `execute` function arguments (this should be the recommended way of dealing with the schema)
ardatan commented 1 year ago

Closed in favor of https://github.com/dotansimha/graphql-yoga/issues/2700