On Thu, Mar 2, 2017 at 4:46 PM, Eric Gribkoff <[email protected]>
wrote:

> Your quote is missing the first part of the sentence.
>
> To avoid unnecessarily committing an RPC on the client, gRPC servers
>> *must* delay sending Response-Headers until the server's first response
>> (a Length-Prefixed-Message) is to be sent on the stream.
>
>
> The intent was "in order to achieve A, you must do B.", not you must
> always do B. If Response-Headers are always immediately sent, retries will
> never be possible. Hence, gRPC servers *"must"* delay the Response-Header
> to avoid unnecessarily committing an RPC.
>

That is quite ambiguous. To me it reads, "In order for the spec to maintain
property A, you must do B." To be as you say, I would have expected an "If"
or similar conditional at the beginning. Without a conditional, it always
applies (even if only to support a niche use case). To me there is no
ambiguity with *should*, since it is clear it is highly encouraged but may
be optional in some cases, and you know what you would be losing if you
chose not to.

Using *should* here instead would almost convey the same message, but needs
> further qualification.
>

Hmm... I guess I just don't see that.

How about:
>
> If Response-Headers are always immediately sent, retries will never be
>> possible.
>
>
That is not entirely true, due at least to network failures (I'd have to
think about it more to weed out other possibilities).

 Hence, gRPC servers should delay the Response-Header to avoid
> unnecessarily committing an RPC.


"delay" is not specific enough. A server should not sleep(1000) before
sending Response-Headers :-). Michael's proposed language seemed fine in
this regard, mostly because it more closely matches the existing language.

Once Response-Headers are sent, retries will not be possible.


Also not entirely true. It matters when they are received, not sent. Sort
of nit, but our specs are so complex, being precise reduces confusion and
effort during reading.

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/CA%2B4M1oNW4Ne5_41v_PH_qYutYSGrQnH-HN_y0PfxYv3uNEMWPA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to