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.
smime.p7s
Description: S/MIME Cryptographic Signature
