finds.dev← search

// the find

graphql-java-kickstart/graphql-java-tools

★ 822 · Kotlin · MIT · updated Jun 2026

A schema-first tool for graphql-java inspired by graphql-tools for JS

Schema-first GraphQL wiring library for the JVM — you write a `.graphqls` file, wire up your existing Java/Kotlin classes as resolvers, and the library generates the data fetchers. The JS graphql-tools spiritual successor for Spring Boot shops. Targets teams with existing domain objects (ORM entities, RPC DTOs) they want to expose over GraphQL without rewriting them.

Resolver auto-discovery genuinely removes a lot of boilerplate: add a method to your resolver class and the field just works, no manual DataFetcher registration. Type-to-class validation at schema build time catches mismatches before any request hits the server. Kotlin coroutine support is first-class via CoroutineContextProvider, so async resolvers don't require wrapping everything in CompletableFuture. The proxy handler abstractions (Spring AOP, Guice, Weld) mean it plays nicely with common IOC containers rather than requiring resolver instances to be plain objects.

822 stars and a 'we are looking for contributors' banner in the README is a warning sign — the project is thinly maintained relative to how much load a production GraphQL service puts on it. Reflection-heavy auto-discovery makes startup slower and stack traces harder to read when wiring fails; error messages when a resolver method signature doesn't match are often cryptic. The Spring Boot starter (graphql-spring-boot) this usually pairs with has fragmented into multiple successor projects, so the integration story is confusing for new adopters. No code generation or compile-time safety — type mismatches between your schema and resolver classes surface at runtime startup, not at compile time, which defeats some of the point of a typed language.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →