eclipse-vertx / eclipse-vertx/vertx-grpc
Consider extending the event-bus grpc response scope
- 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
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