I'm currently trying to implement a grpc service.

Some rpcs need to send / receive big ammounts of data (bigger  thatnthe max 
size of a grpc commands, potentially up to a few gygabytes).

This is notdata that is 'streamed' where you only need the latest state, 
but really a bit data chunk that neds to be fully sent

Now, it looks like to me that using streaming rpcs  wil not provides enough 
guarantees.
As far as i have understand, grpc guarantees that
"Streamed items will be received in the same order that they were sent"

But it does not guarantee that "all sent streamed 'parts' will be received".

It also looks like that "The sender will not be able to tell which parts 
were not received
And that "streamed parts that were not received will not be sent again"

Finally, i'm not even sure what would happen if grpc is able to detect that 
a streamed part is not received.
Does it consider that a streaming rpc updates a 'state' that you only need 
the latest, so it will not make a fatal error if a state can be detected as 
'not received'.
Or will it fail the straming RPC as soon as something is detected to not 
have been received, because it might be part of a whole thing that needs to 
be complete?

So basically, the question, is
"Can i expect a streaming rpc to make sure the receiver has received all 
parts before telling the operation succeeds? Or if not, can i have the 
guarantee that it will tell me that it knows not everything was received? 
If it does, is it able to tell me which part could not be received? Is 
there something i can/have to add above grpc to ensure that behaviour (that 
would still be lighter than me implementing my own 'chunking' algo 
manually)?

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/f0c88616-960f-44db-b3c8-ac64317f1b4bn%40googlegroups.com.

Reply via email to