Skip to main content

GraphQL RFC Tracker

The following is a rough tracker of GraphQL RFCs, compiled and maintained by Benjie. It does not claim to be a complete, accurate, or up to date representation of the RFCs; it is generated in part by automated scripts but may be helpful for people to keep track of the various RFCs.

Not up to date?

Ping @benjie on the GraphQL Discord (#wg channel) and ask for him to run an update!

Last updated: 2025-06-26T19:21:25.609Z

Stage 3: Accepted (pending editorial)​

RFCChampionTitleLatest
#1102@benjieDefine Data Collections used in the spec GitHubAdded to 2025-06-26 WG agenda (more)
#825@benjieOneOf Input Objects GitHub4 commits pushed: (latest) on 2025-06-12 by @benjie (more)
#793@benjieDefault value coercion rules GitHubAdded to 2025-06-05 WG agenda (more)
#1092@benjieRecommend that order of unordered collections is maintained where possible GitHubAdded to 2025-05-01 WG agenda (more)

Stage 2: Draft​

RFCChampionTitleLatest
#794 🚀@magicmarkSchema Coordinates GitHubAdded to 2025-06-26 WG agenda (more)
#1063 🚀@benjieType system ordering of: object interfaces, directive arguments, input object fields, enum values GitHubAdded to 2025-05-01 WG agenda (more)
#1170@fotoetienneAdd descriptions to executable documents | 2025 Update GitHubAdded to 2025-06-26 WG agenda (more)
#1081@JoviDeCroockFragment arguments/variables (syntax/validation/execution) GitHubCommit pushed: Partial update, rest depends on https://github.com/graphql/graphql-sp… on 2025-02-15 by @JoviDeCroock (more)

Stage 1: Proposal​

RFCChampionTitleLatest
#1058 🚀@benjieList coercion algorithm GitHubAdded to 2025-06-26 WG agenda (more)
#1056 🚀@benjieFix CoerceArgumentValues() hasValue GitHubAdded to 2025-01-09 WG agenda (more)
#997@fotoetienneExpand @deprecated to Objects GitHubAdded to 2025-06-26 WG agenda (more)
#1163@benjieService capabilities / error behaviors GitHubAdded to 2025-06-05 WG agenda (more)
#1110@robrichardIncremental Delivery spec draft GitHubCommit pushed: skip deferred fragment spread when already in visited fragments on 2025-01-09 by @robrichard (more)
#1127@benjieWhen `sourceStream` errors, yield a `{ errors: [...] }` response GitHubAdded to 2025-01-09 WG agenda (more)
#1059@benjieIntroduce Strict and Legacy All Variable Usages Are Allowed GitHubAdded to 2023-12-07 WG agenda (more)
#950@yaacovCRallow unions to include interfaces and unions GitHubAdded to 2022-08-04 WG agenda (more)
#939@yaacovCRallow unions to declare implementation of interfaces GitHubAdded to 2022-06-02 WG agenda (more)
#907@IvanGoncharovAdd support for directives on directives GitHubAdded to 2022-01-06 WG agenda (more)
#509@taionAllow singular variables in list locations GitHubCommit pushed: Remove CoerceVariableValues on 2018-09-01 by @taion (more)

Stage 0: Strawman​

RFCChampionTitleLatest
#521 🚀@IvanGoncharovScalar serialize as built-in scalar type GitHubSpec PR created on 2018-10-14 by IvanGoncharov (more)
InputUnion-NOTE: this document is kept for historic purposes; [`@oneOf`](https://github.com/graphql/graphql-spec/pull/825) gained RFC3 status in May 2025.RFC document updated on 2025-06-05 by Benjie (more)
SemanticNulla…-Semantic NullabilityRFC document updated on 2025-05-01 by Benjie (more)
#1165@benjieAdd Transitional Non-Null appendix (`@noPropagate` directive) GitHubSpec PR created on 2025-04-30 by benjie (more)
FieldExtensions-Field ExtensionsRFC document created on 2025-04-25 by Martin Bonnin (more)
#1065@benjieSemanticNonNull type (null only on error) GitHubAdded to 2025-04-03 WG agenda (more)
wg#1700@leebyronLee's new nullability & error propagation proposalWG discussion created on 2025-03-26 by leebyron (more)
DisableErrorP…-Disable Error Propagation DirectiveRFC document created on 2025-03-19 by Alex Reilly (more)
#1050@benjieDirective proposal for opting out of null bubbling GitHub4 commits pushed: (latest) on 2025-03-10 by @benjie (more)
ClientControl…-NOTE: this document is not being worked on at the moment, instead the Nullability WG are currently exploring an alternative solution that addresses many of the same underlying issues in a different way: [Semantic Nullability RFC](SemanticNullability.md).RFC document updated on 2025-02-24 by Martin Bonnin (more)
#1114@yaacovCRadd __directive meta field parallel to __type GitHubAdded to 2024-11-07 WG agenda (more)
#1057@benjieFix coercion table for list GitHubAdded to 2024-10-03 WG agenda (more)
DeferStream-GraphQL Defer and Stream DirectivesRFC document updated on 2024-09-19 by Rob Richard (more)
SchemaCoordin…-Schema CoordinatesRFC document updated on 2024-02-08 by Benjie (more)
FeatureDiscov…-Feature DiscoveryRFC document updated on 2023-11-28 by Benjie Gillam (more)
Struct-Polymorphic-capable composite symmetric input/output type (`struct`)RFC document updated on 2023-11-28 by Benjie (more)
#1049@martinbonninIntroduce SourceSchemaDocument and FullSchemaDocument GitHub2 commits pushed: (latest) on 2023-11-20 by @martinbonnin (more)
wg#1410@leebyronStrict Semantic NullabilityWG discussion created on 2023-10-05 by leebyron (more)
wg#1394@captbaritoneTrue Nullability SchemaWG discussion created on 2023-09-12 by captbaritone (more)
#1045@benjieRemove fragmentSpreadName from visitedFragments when visit is complete GitHubSpec PR created on 2023-09-11 by benjie (more)
FullSchemas-Full SchemasRFC document created on 2023-08-26 by Martin Bonnin (more)
#1015@leebyron"Root" Types clarity → "Operation Type" GitHubAdded to 2023-03-02 WG agenda (more)
FragmentArgum…-Fragment ArgumentsRFC document created on 2023-02-10 by Matt Mahoney (more)
wg#1239@mjmahoneFragment Arguments: RFC + Implementation DetailsWG discussion created on 2023-01-19 by mjmahone (more)
#998@yaacovCRadd spec edits for references GitHubSpec PR created on 2022-11-03 by yaacovCR (more)
OptInFeatures-Opt-in featuresRFC document updated on 2022-09-30 by Martin Bonnin (more)
ExpandingSubt…-Expanding Subtyping (for output types)RFC document created on 2022-08-31 by Yaacov Rydzinski (more)
AnnotationStr…-Annotation StructsRFC document updated on 2022-08-31 by Benjie (more)
MetadataStructs-Metadata StructsRFC document updated on 2022-08-16 by Benjie (more)
wg#1096@leebyron"Metadata Directives" ProposalWG discussion created on 2022-08-04 by leebyron (more)
CompositeSche…-GraphQL Composite SchemasRFC document updated on 2022-07-22 by Daniel Winter (more)
wg#1071@benjieStruct typeWG discussion created on 2022-07-18 by benjie (more)
#673@spawniaServers must preserve lexical ordering between SDL and introspection GitHub2 commits pushed: (latest) on 2022-06-16 by @spawnia (more)
#948@benjieOneOf Objects GitHubAdded to 2022-06-02 WG agenda (more)
wg#944@yaacovCRNew Intersection TypeWG discussion created on 2022-04-30 by yaacovCR (more)
wg#857@mjmahoneFragment ModularityWG discussion created on 2022-01-07 by mjmahone (more)
FragmentModul…-Fragment ModularityRFC document created on 2022-01-06 by Matt Mahoney (more)
wg#815@leebyronNested GraphQL MutationsWG discussion created on 2021-12-02 by leebyron (more)
ImplicitInher…-Implicit InheritanceRFC document updated on 2021-09-03 by Lee Byron (more)
OperationExpr…-Operation ExpressionsRFC document created on 2021-09-02 by Benjie Gillam (more)
SchemaFragments-Schema FragmentsRFC document created on 2021-09-02 by Daniel Starns (more)
#879@mjmahone__fulfilled meta field GitHubAdded to 2021-09-02 WG agenda (more)
Subscriptions-NOTE: this document is kept for historic purposes; GraphQL Subscriptions have been specified and released as part of the official [June 2018 GraphQL Specification](https://spec.graphql.org/June2018/).RFC document updated on 2020-08-19 by Benjie Gillam (more)
#710@chemisusAdd namedType and punctuatedName to __Type GitHubAdded to 2020-05-07 WG agenda (more)
#706@francisuAdd support for directives for an object field name GitHubSpec PR created on 2020-04-07 by francisu (more)
#674@kassensallow empty selections GitHubSpec PR created on 2020-01-21 by kassens (more)
#631@victorandreeMake root query operation type optional GitHubAdded to 2019-12-05 WG agenda (more)
#567@benheadallow directives on directive definitions GitHubSpec PR created on 2019-02-28 by benhead (more)
#556@langpavelDocument Directives GitHubCommit pushed: Document directives are not special on 2019-02-01 by @langpavel (more)
#325@IvanGoncharovAdd "Any" scalar type GitHubSpec PR created on 2017-06-19 by IvanGoncharov (more)

Stage 3: Accepted​

RFCChampionTitleLatest
#955@benjaminjkraftAdd validation rule that operation types exist GitHubAdded to 2025-06-26 WG agenda (more)
#1167@benjieDo not exclude schema keyword if schema has description GitHubAdded to 2025-06-26 WG agenda (more)
#860@benjiePrevent @skip and @include on root subscription selection set GitHubAdded to 2025-06-05 WG agenda (more)
#1053@benjieImplementations may not deprecate a field that the interface hasn't deprecated GitHubAdded to 2025-05-01 WG agenda (more)
#1142@martinbonninmake `includeDeprecated` non nullable GitHubAdded to 2025-05-01 WG agenda (more)
#976@benjieAdd 'extensions' to request GitHubCommit pushed: Update Section 6 -- Execution.md on 2025-04-17 by @leebyron (more)
#1040@martinbonninMake the reason argument in `@deprecated` non-nullable GitHubAdded to 2024-12-05 WG agenda (more)
#1073@martinbonninBe strict about error paths format GitHubAdded to 2024-04-04 WG agenda (more)
#987@benjieFix ambiguity around when schema definition may be omitted GitHubCommit pushed: add related definition and specific example on 2023-02-09 by @leebyron (more)
#891@dugenkui03Add explanation about argument name uniqueness. GitHubAdded to 2023-02-02 WG agenda (more)
#805@IvanGoncharovAllow deprecation of input values (field args, directive args, input fields) GitHubCommit pushed: Editorial on 2022-06-03 by @leebyron (more)
#849@leebyronAllow full unicode range GitHubCommit pushed: Editorial on 2022-06-02 by @leebyron (more)
#776@benjie__typename is not valid at subscription root GitHubAdded to 2021-05-13 WG agenda (more)
#649@eapacheCustom Scalar Specification URLs GitHub2 commits pushed: (latest) on 2021-04-09 by @leebyron (more)
#803@benjieReplace 'query error' with 'request error' GitHub2 commits pushed: (latest) on 2021-04-07 by @leebyron (more)
#525@smitt04Allow deprecation of input values GitHubMentioned in 2021-02-04 WG notes (more)
#701@spawniaDisallow non-breakable chains of circular references in Input Objects GitHub2 commits pushed: (latest) on 2021-01-11 by @leebyron (more)
#373@mike-marcacciAllow interfaces to implement other interfaces GitHub5 commits pushed: (latest) on 2020-01-11 by @leebyron (more)
#472@OlegIlyenkoRepeatable directives GitHub2 commits pushed: (latest) on 2020-01-10 by @leebyron (more)
#599@leebyronClarify that lexing is greedy GitHubAdded to 2019-10-10 WG agenda (more)
#601@leebyronNumber value literal lookahead restrictions GitHubAdded to 2019-10-10 WG agenda (more)
#598@leebyronAvoid parse ambiguity on types & extensions GitHubAdded to 2019-08-01 WG agenda (more)
#510@mjmahoneAllow directives on variable definitions GitHubSpec PR created on 2018-08-29 by mjmahone (more)
#470@OlegIlyenko"Directive order is significant" section GitHubSpec PR created on 2018-06-23 by OlegIlyenko (more)
#466@IvanGoncharovAdd description to Schema GitHubSpec PR created on 2018-06-13 by IvanGoncharov (more)
#463@leebyronEnsure validation of directive arguments GitHubSpec PR created on 2018-06-11 by leebyron (more)
#462@leebyronInput & Output type definition GitHubSpec PR created on 2018-06-11 by leebyron (more)
#459@mjmahoneRemove Interface is implemented by 1+ Objects validation GitHubSpec PR created on 2018-06-08 by mjmahone (more)
#454@IvanGoncharovAdd validation steps for schema extensions GitHubSpec PR created on 2018-06-04 by IvanGoncharov (more)
#445@spawniaDisallow non-breakable chains of circular references in Input Objects GitHubAdded to 2019-11-07 WG agenda (more)

Stage X: Superseded​

RFCChampionTitleLatest
#823@benjieoperation expressions GitHub2 commits pushed: (latest) on 2021-03-16 by @benjie (more)
#667@lilianammmatos[RFC Sketch] Defer and Stream Directives GitHubAdded to 2020-01-09 WG agenda (more)
#892@IvanGoncharovAdd descriptions to executable definitions GitHubAdded to 2025-06-05 WG agenda (more)
#1153@benjieAllow clients to disable error propagation via request parameter GitHubAdded to 2025-04-03 WG agenda (more)
#1157@martinbonninExclude custom scalar literals from validation GitHubSpec PR created on 2025-04-02 by martinbonnin (more)
#1126@benjieGraphQL Subscriptions should handle errors in the source stream GitHubSpec PR created on 2024-11-21 by benjie (more)
#1098@Shane32Add 5.2.4 Operation Type Exists GitHub2 commits pushed: (latest) on 2024-10-04 by @Shane32 (more)
#1091@benjieDefine Data Collections used in the spec GitHubAdded to 2024-06-06 WG agenda (more)
#1010@mjmahoneFragment Arguments: Spec Implementation GitHubAdded to 2024-02-01 WG agenda (more)
#1052@yaacovCRdeduplicated incremental delivery GitHub8 commits pushed: (latest) on 2024-01-30 by @yaacovCR (more)
#1048@benjieNull-Only-On-Error / Semantically-Non-Null type (asterisk) GitHubAdded to 2023-10-05 WG agenda (more)
#1034@yaacovCRincremental delivery with deduplication + concurrent execution GitHubCommit pushed: use identifiers instead of records when possible on 2023-09-28 by @yaacovCR (more)
#999@yaacovCRintroduce ExecuteGroupedFieldSet, CollectRootFields and CollectSubfields GitHubAdded to 2023-06-01 WG agenda (more)
#1026@yaacovCRincremental delivery with deduplication + concurrent execution GitHubAdded to 2023-06-01 WG agenda (more)
#1023@yaacovCRincremental delivery without branching GitHubSpec PR created on 2023-03-24 by yaacovCR (more)
#742@robrichardSpec edits for @defer/@stream GitHubCommit pushed: CollectFields does not require path or asyncRecord (#11) on 2023-01-16 by @yaacovCR (more)
#865@mjmahoneFragment Arguments (parameterized fragments) for GraphQL GitHubCommit pushed: Split RFC doc into graphql-wg PR on 2023-01-11 by @mjmahone (more)
#877@IvanGoncharovForbid duplicating argument names GitHubSpec PR created on 2021-07-01 by IvanGoncharov (more)
#586@benjieInput Objects accepting exactly @oneField GitHub2 commits pushed: (latest) on 2019-07-22 by @benjie (more)
#471@OlegIlyenkoLimit uniqueness to `@skip`, `@include` and `@deprecated` directives GitHubCommit pushed: Include `@deprecated` directive in the validation rule on 2018-06-25 by @OlegIlyenko (more)
#326@leebyronScalar serialize as built-in scalar type GitHubSpec PR created on 2017-06-20 by leebyron (more)

Stage X: Rejected​

RFCChampionTitleLatest
#1166@benjieEnable 'schema' keyword to be provided without root operations GitHubSpec PR created on 2025-05-01 by benjie (more)
#1018@benjieAlternative proposal for `@stream`/`@defer` GitHubAdded to 2023-04-06 WG agenda (more)
#960@yaacovCRAllow recursion within ResolveAbstractType GitHubAdded to 2022-07-07 WG agenda (more)
#895@twofClient Controlled Nullability GitHubCommit pushed: updated to reflect newest behavior on 2022-05-13 by @twof (more)
#888@nojvekMap type GitHubAdded to 2021-10-07 WG agenda (more)
#883@IvanGoncharovRelax SameResponseShape algorithm to be compatible with covariant fields GitHubSpec PR created on 2021-09-02 by IvanGoncharov (more)
#733@benjieTagged type GitHubCommit pushed: Separate input and output tagged types on 2021-01-21 by @benjie (more)
#806@benjie__typename should be valid at subscription root GitHubSpec PR created on 2020-12-05 by benjie (more)
#319@IvanGoncharovAdd '@ignoreIfUnknown' to allow forward compatibility for clients GitHubMentioned in 2020-02-06 WG notes (more)
#606@victorandreeSupport empty composite types GitHubAdded to 2019-12-05 WG agenda (more)
#460@mjmahoneRequire Interfaces to have 1+ Objects implementing GitHubCommit pushed: Merge branch 'master' into rfc-interfaces-implemented on 2018-06-11 by @leebyron (more)
#395@tgriesserinputUnion type GitHubSpec PR created on 2018-01-11 by tgriesser (more)
#315@excitement-engineerSupport DateTime scalar GitHubSpec PR created on 2017-05-26 by excitement-engineer (more)
#232@stubailo__id field for unique identifiers GitHubCommit pushed: Remove .vscode from gitignore on 2016-10-31 by Sashko Stubailo (more)