rejoiner
Generates a unified GraphQL schema from gRPC microservices and other Protobuf sources
Rejoiner is a Java library from Google that creates a single GraphQL API by stitching together multiple backend services that communicate using Protocol Buffers and gRPC. GraphQL is a query language that lets front-end clients ask for exactly the data they need in one request, while gRPC and Protocol Buffers are Google's system for defining and calling services between servers.
The problem Rejoiner solves is that large applications often break their backend into many smaller independent services. Without a tool like this, a front-end team would have to call each service separately and manually combine the results. Rejoiner reads the data structure definitions from each service and automatically generates the matching GraphQL types, so developers do not have to write that glue code by hand.
Beyond basic schema generation, Rejoiner lets developers define how data from one service connects to data from another. For example, if a to-do item has a creator field stored as an email address, a developer can annotate a method that calls a separate user service to fetch the full user record for that email. To a client making a GraphQL query, this looks like a single unified data model.
The library uses a Java dependency injection framework called Guice to wire everything together. Each service gets its own schema module, and the modules are composed into a complete schema. The README also mentions several experimental features, including exposing a GraphQL schema as a gRPC service and support for streaming queries.