GraphQL Server With Java & Clients in Go and Rust
GraphQL it's an interesting approach for Data Aggregation. GraphQL is a query language API for existing data. You can leverage all your REST APIs and existing data sources. GraphQL it's mobile-friendly and you can ask literally just the fields you need. GraphQL also allows you to share queries and there are clients for pretty much all languages. GraphQL allows you multiplex and de-multiplex multiple requests in one, being really great for tail latency and nice for data-intensive applications. However, not everything in graphql is flowers and I dont want to paint a rosy picture. There are issues and tradeoffs you need to take into account. I highly recommend you read these 3 series of posts I made comparisons with other approaches like BFs. BFF and GraphQL Dilemma part 1, part 2, and part 3. Today I want to share a video I made where there is a GraphQL Server written in Java and we have 2 clients one Written in Go Lang and the other written in Rust. So Let's get started.
The video
The Code
GraphQL Server - Written in Java with JDK 15 and Maven 3
https://github.com/diegopacheco/java-pocs/tree/master/pocs/graphql-java-fun
GraphQL Client - Written in Go Lang with Machinebox/GraphQL
https://github.com/diegopacheco/go-playground/tree/master/machinebox-graphql-fun
GraphQL Client - Written in Rust with graphql_client
https://github.com/diegopacheco/rust-playground/tree/master/graphql-rust-client-fun
Cheers,
Diego Pacheco