The client can indicate to the server that no more messages are coming by putting the connection in half closed state; however, the server cannot do the same: when the server sends the trailers, the RPC is considered over. This was a surprisingly subtle change to make, but the changes we make her paves the way for other features too, such as automatic retries.
Verified interoperability with Python, C++, Go and Java, both with grapesy as server and with grapesy as client. Also added a self-interop test as part of CI now.
The client can indicate to the server that no more messages are coming by putting the connection in half closed state; however, the server cannot do the same: when the server sends the trailers, the RPC is considered over. This was a surprisingly subtle change to make, but the changes we make her paves the way for other features too, such as automatic retries.