Why Build gRPC Directly on Reactor Netty
I recently started building grpc-reactor : an experimental gRPC implementation built directly on Reactor Netty HTTP/2. The project uses Protobuf but has zero runtime dependency on grpc-java transport, ClientCall , ServerCall , or StreamObserver . This is not about proving grpc-java is bad. grpc-java is mature, stable, and covers load balancing, NameResolver, retries, and rich observability. This…
The article discusses the development of grpc-reactor, an experimental gRPC implementation built directly on Reactor Netty HTTP/2. The project aims to explore the possibility of integrating Mono and Flux from the Reactor library all the way into the HTTP/2 stream, without requiring adaptation between two different asynchronous abstractions.
The author emphasizes that the project is not about proving grpc-java is inferior, but rather about answering a different question: if a programming model is already based on Reactor, can Mono and Flux flow seamlessly from the generated API down to the HTTP/2 stream? The article outlines the four RPC cardinalities supported by gRPC, which correspond to different scenarios such as unary requests, server streaming, client streaming, and bidirectional streaming.
It explains how these cardinalities are designed to handle various communication patterns and how the generated code applies cardinality checks to ensure compatibility with the wire protocol.
Brief written by urgent.news from Dev.to's own syndicated text. Machine-written — may contain errors; check the original before relying on it.

