eclipse-vertx / eclipse-vertx/vertx-grpc

Consider extending the event-bus grpc response scope

Open
#365 0 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Java
Stars
53
Forks
36
Avg merge
7h 37m
Merged PRs (30d)
64

Description

### Describe the feature

The implementation of the gRPC protocol for the event-bus transport relies on an immediate response from the server. However this implies that tracing will be perceived differently for server streaming: the tracing span ends when the stream actually begins.

The protocol could be modified to accommodate this and let the server sends the response when streaming is finished. The consequences are:

- the event bus request might require an extended timeout (currently 30 seconds) for streaming
- the client must be ready to receive server frames before sending the request to avoid races
- the server to client frame can be replaced by a cancel response, very much like the HTTP/2 transport
- streaming client can use the response body instead of using a stream like a unary
- *however* there is no practical way for the client to ping the server, this needs another solution, e.g. rely on an ack frame to send the server details

### Contribution

_No response_

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the gRPC event-bus transport implementation, focusing on the current immediate response, 30-second timeout, and tracing behavior described in the issue. Done requires an agreed protocol design that addresses streaming completion, client/server frame races, cancellation, extended timeouts, and the missing client ping mechanism.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, java
Domain
backend-api-design, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.