Feature Request: Keepalive Support in ttrpc
- Dominant language
- Go
- Stars
- 664
- Forks
- 86
- PR merge metrics
- No merged PRs in 30d
Description
This feature request proposes the implementation of a keepalive mechanism in ttrpc based on the [HTTP/2 PING frame as defined in RFC 7540, Section 6.7](https://datatracker.ietf.org/doc/html/rfc7540#section-6.7) to distinguish between a slow remote procedure call (RPC) and a dead or unresponsive client or server. The keepalive feature will allow clients and servers to periodically check the health of the connection.
The ttrpc protocol, as described in PROTOCOL.md, will be extended with two new message types:
- PING (0x04): A message sent by the client to the server to check if the connection is alive.
- PONG (0x05): A message sent by the server in response to a PING, confirming that the connection is active.
Both server and client will be able to set this functionality with the following two options (based on golang http2 implementation):
- ReadIdleTimeout: The timeout after which a health check using a PING frame will be sent if no data frames are received on the connection (0 means disabled)
- PingTimeout: The timeout after which the connection will be closed if a response to a PING is not received (0 means disabled)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.