Skip to main content

One min read
Andreas Marek

GraphQL Java will require Java 11 as a minimum Java version, starting from version 21.

With Java 8 being released over 8 years ago and Java 17 more than one year ago, we think now is the right time to upgrade the minimum Java version GraphQL Java is developed against.

This means starting with version 21 you need to use at least Java 11 to run GraphQL Java.

Depending on the feedback we get, we plan to release bugfix releases for version 20 for some time, but no longer than until end of 2023.

Please discuss and leave feedback here

One min read
Donna Zhou

We are pleased to announce the release of graphql-java 20.0!

Special thanks to each of the 200+ contributors over the years, who have made this milestone possible.

We've added support for record-like property fetching, added performance improvements for PropertyDataFetcher and reduced object allocation.

Version 20 also introduces internationalization (i18n) for validation, parsing, and scalar coercion error messages. We have added German translations, and we would love to see more languages. If you would like to contribute, please open a pull request.

See the full release notes on GitHub.

One min read
Donna Zhou

If you are building a GraphQL application with Spring, we recommend using the official Spring for GraphQL integration. This integration is a collaboration between the Spring and GraphQL Java teams, and is maintained by the Spring team. In May 2022, Spring for GraphQL 1.0 GA was released.

Use Spring Initializr to create a GraphQL application. For a quick tutorial, please see our Spring for GraphQL tutorial.

See also the Spring for GraphQL documentation and the repo on GitHub.

Before the official Spring for GraphQL integration was released, there were many other GraphQL integrations for Spring, including the similarly named GraphQL Java Spring project from the GraphQL Java team, published under the com.graphql-java and com.graphql-java-kickstart group IDs. Many tutorials are still referring to this unrelated project.

Please use the official integration named "Spring for GraphQL", published under org.springframework and related group IDs.

One min read
Andreas Marek

We are happy to announce the availability of GraphQL Java 17.0. See 17.0 release notes for all the details.

At the same time we wanted to give an update regarding our LTS (Long Term Support) policy. Previously we maintained a LTS version of 9.x and after quite some time we announced 14.x as the next LTS.

The reality is that we didn't maintain 14.x really as a LTS version (we only released one bugfix release). This was mainly caused by the minimal community feedback and our limited time and resources.

Going forward we decided to no offer any LTS versions anymore. We will only actively maintain and bugfix the latest version (currently 17). We may backport critical bugfixes, but we are not committed to it.

If this is a huge problem for you or your Company and you are willing to help us with maintaining a LTS version you can reach us at Twitter GraphQL Java or per mail at hello at graphql-java dot com.

2 min read
Andreas Marek

Every once in a while somebody asks which version of the GraphQL spec GraphQL Java supports. The general answer is: the current draft.

The bigger question behind this is: what is the information you want get out of this question? Why do you ask this question?

The thing is: spec releases are not really important and people misinterpret what they mean.

Evolution of the spec process

The GraphQL spec has five releases so far:

  • two in 2015 (including the first published version)
  • two in 2016
  • one in 2018

As you can see in the first two years spec releases where quite frequently, but after the one in 2018, there has not been a release.

2017 was also the year the GraphQL Working Group was established. This group is the main forum to evolve the spec since then. Over time this group established a very high bar for every PR to be merged into the spec. (See the Contributing guidelines)

With this high standard set, nearly all implementations (including GraphQL Java) started to implement every merged PR instead of waiting for a big release. Because they are very confident this change will be released in this form, it is safe to implement it right away.

This treatment of merged PRs as de-factor releases is now an established rule in the GraphQL community. This explains why the whole GraphQL ecosystem has evolved a lot since 2018, even without a release.

A release is not needed anymore if every merged PR is like a mini release.

Future releases are more like an opportunity to look back and promote the work since the last release.

I personally hope that we make this de-facto rule, that evey PR is a mini release, more official. We should not use the word "draft" any more, but every merged PR should automatically result in a new GraphQL spec version which is formally approved by the GraphQL TSC.

Coming back to the question: "Which spec version of GraphQL is supported"? I hope by now it is clear why this question is probably not really helpful.

It is better to think about certain features you want to discuss instead referring to the spec releases.

Feedback or questions

We use GitHub Discussions for general feedback and questions.

You can also contact us on Twitter: @graphql_java