whatisgithub

What is rejoiner?

google/rejoiner — explained in plain English

Analysis updated 2026-07-03

3,664JavaAudience · developerComplexity · 4/5Setup · hard

In one sentence

A Java library that connects multiple gRPC/Protobuf backend services into a single GraphQL API, so front-end clients can request all the data they need in one call instead of hitting each service separately.

Mindmap

mindmap
  root((repo))
    What it does
      Stitches gRPC services
      Single GraphQL API
      Auto-generates types
    Tech Stack
      Java
      gRPC
      Protocol Buffers
      Guice
    Use Cases
      Frontend data fetching
      Service federation
      Cross-service links
    Audience
      Java backend teams
      Microservice developers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a single GraphQL endpoint that combines data from multiple gRPC microservices without writing manual glue code.

USE CASE 2

Auto-generate GraphQL types from existing Protocol Buffer service definitions to keep schema and code in sync.

USE CASE 3

Link data across services by annotating resolver methods that call separate backend APIs, so clients see one unified model.

USE CASE 4

Compose independent service schema modules into a complete GraphQL schema using Guice dependency injection.

What is it built with?

JavaGraphQLgRPCProtocol BuffersGuice

How does it compare?

google/rejoineryangfuhai/asimplecachelisawray/groupie
Stars3,6643,6643,673
LanguageJavaJavaJava
Setup difficultyhardeasyeasy
Complexity4/52/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires existing gRPC/Protobuf-based backend services and familiarity with the Guice dependency injection framework.

So what is it?

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.

Copy-paste prompts

Prompt 1
I have multiple gRPC services defined with Protocol Buffers. Show me how to use Rejoiner to combine them into a single GraphQL schema with Guice modules.
Prompt 2
Show me how to write a Rejoiner SchemaModule that adds a resolver connecting a Todo item's creator email field to a separate User gRPC service.
Prompt 3
How do I add Rejoiner to my Java Maven project and wire up two existing gRPC service stubs into one GraphQL API?
Prompt 4
Generate a Rejoiner module for this Protobuf service definition: [paste .proto file here]. Include the Guice binding.
Prompt 5
How does Rejoiner handle streaming gRPC methods in a GraphQL subscription?

Frequently asked questions

What is rejoiner?

A Java library that connects multiple gRPC/Protobuf backend services into a single GraphQL API, so front-end clients can request all the data they need in one call instead of hitting each service separately.

What language is rejoiner written in?

Mainly Java. The stack also includes Java, GraphQL, gRPC.

How hard is rejoiner to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is rejoiner for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.